mirror of
https://github.com/jie65535/GrasscutterCommandGenerator.git
synced 2025-10-20 19:39:47 +08:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
c94a7683e4 | |||
b407012bef | |||
bb7d28153f | |||
627d9c7cd2 | |||
53a83fd7a7 | |||
c2ca091662 | |||
738a755353 | |||
dcbd946407 | |||
2a8cebcbb5 | |||
434ec7b2df | |||
c2ff37facf | |||
f48c9b4d0b | |||
1d734479d1 | |||
a989581d59 |
@@ -24,7 +24,7 @@ using GrasscutterTools.Utils;
|
||||
|
||||
namespace GrasscutterTools.DispatchServer
|
||||
{
|
||||
public static class DispatchServerAPI
|
||||
internal static class DispatchServerAPI
|
||||
{
|
||||
public static async Task<ServerStatus> QueryServerStatus(string host)
|
||||
{
|
||||
|
@@ -21,7 +21,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.DispatchServer.Model
|
||||
{
|
||||
public class ServerStatus
|
||||
internal class ServerStatus
|
||||
{
|
||||
[JsonProperty("playerCount")]
|
||||
public int PlayerCount { get; set; }
|
||||
@@ -33,7 +33,7 @@ namespace GrasscutterTools.DispatchServer.Model
|
||||
public string Version { get; set; }
|
||||
}
|
||||
|
||||
public class ServerStatusResponse
|
||||
internal class ServerStatusResponse
|
||||
{
|
||||
[JsonProperty("retcode")]
|
||||
public int RetCode { get; set; }
|
||||
|
@@ -126,17 +126,17 @@ namespace GrasscutterTools.Forms
|
||||
}
|
||||
};
|
||||
CreatePage<PageGiveArtifact>();
|
||||
CreatePage<PageSetProp>();
|
||||
CreatePage<PageSpawn>();
|
||||
CreatePage<PageGiveItem>();
|
||||
CreatePage<PageAvatar>();
|
||||
CreatePage<PageGiveWeapon>();
|
||||
CreatePage<PageScene>();
|
||||
CreatePage<PageTasks>();
|
||||
CreatePage<PageManagement>();
|
||||
CreatePage<PageMail>();
|
||||
CreatePage<PageTasks>();
|
||||
CreatePage<PageQuest>();
|
||||
CreatePage<PageScene>();
|
||||
CreatePage<PageAchievement>();
|
||||
CreatePage<PageSetProp>();
|
||||
CreatePage<PageAbout>();
|
||||
#if DEBUG
|
||||
CreatePage<PageTools>();
|
||||
@@ -158,17 +158,17 @@ namespace GrasscutterTools.Forms
|
||||
Resources.PageCustomCommandsTitle,
|
||||
Resources.PageHotKey,
|
||||
Resources.PageGetArtifactTitle,
|
||||
Resources.PageSetPropTitle,
|
||||
Resources.PageSpawnTitle,
|
||||
Resources.PageGiveItemTitle,
|
||||
Resources.PageAvatarTitle,
|
||||
Resources.PageGiveWeaponTitle,
|
||||
Resources.PageSceneTitle,
|
||||
Resources.PageTasksTitle,
|
||||
Resources.PageManagementTitle,
|
||||
Resources.PageMailTitle,
|
||||
Resources.PageTasksTitle,
|
||||
Resources.PageQuestTitle,
|
||||
Resources.PageSceneTitle,
|
||||
Resources.PageAchievementTitle,
|
||||
Resources.PageSetPropTitle,
|
||||
Resources.PageAboutTitle,
|
||||
#if DEBUG
|
||||
"Tools",
|
||||
@@ -380,10 +380,9 @@ namespace GrasscutterTools.Forms
|
||||
/// <param name="args">参数</param>
|
||||
private void SetCommand(string command, string args)
|
||||
{
|
||||
if (Settings.Default.IsIncludeUID)
|
||||
SetCommand($"{command} @{Settings.Default.Uid} {args.Trim()}");
|
||||
else
|
||||
SetCommand($"{command} {args.Trim()}");
|
||||
SetCommand(Settings.Default.IsIncludeUID
|
||||
? $"{command} {args.Trim()} @{Settings.Default.Uid}"
|
||||
: $"{command} {args.Trim()}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -557,8 +556,8 @@ namespace GrasscutterTools.Forms
|
||||
Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom,
|
||||
Multiline = true,
|
||||
Font = new Font("Consolas", 9F),
|
||||
Location = new Point(BtnInvokeOpenCommand.Left, BtnInvokeOpenCommand.Bottom + 6),
|
||||
Size = new Size(GrpCommand.Width - BtnInvokeOpenCommand.Left * 2, TxtCommandRunLogMinHeight),
|
||||
Location = new Point(ChkAutoCopy.Left, ChkAutoCopy.Bottom + 6),
|
||||
Size = new Size(GrpCommand.Width - ChkAutoCopy.Left * 2, TxtCommandRunLogMinHeight),
|
||||
ReadOnly = true,
|
||||
BackColor = Color.White,
|
||||
ScrollBars = ScrollBars.Vertical,
|
||||
|
@@ -135,6 +135,6 @@
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>Inherit</value>
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
</root>
|
@@ -244,7 +244,7 @@
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="CmbCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>87, 21</value>
|
||||
<value>115, 22</value>
|
||||
</data>
|
||||
<data name="CmbCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>600, 25</value>
|
||||
@@ -264,17 +264,14 @@
|
||||
<data name=">>CmbCommand.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="BtnCopy.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>693, 22</value>
|
||||
<value>59, 22</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 23</value>
|
||||
<value>50, 25</value>
|
||||
</data>
|
||||
<data name="BtnCopy.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@@ -294,9 +291,6 @@
|
||||
<data name=">>BtnCopy.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@@ -304,7 +298,7 @@
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>749, 24</value>
|
||||
<value>10, 24</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 21</value>
|
||||
@@ -330,14 +324,17 @@
|
||||
<data name="GrpCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 22</value>
|
||||
<value>721, 22</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
<value>75, 25</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
|
@@ -119,22 +119,22 @@
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="CmbCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>132, 21</value>
|
||||
<value>155, 21</value>
|
||||
</data>
|
||||
<data name="CmbCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>513, 25</value>
|
||||
<value>523, 25</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>651, 21</value>
|
||||
<value>57, 21</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>92, 23</value>
|
||||
<value>92, 25</value>
|
||||
</data>
|
||||
<data name="BtnCopy.Text" xml:space="preserve">
|
||||
<value>Копировать</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>749, 23</value>
|
||||
<value>6, 24</value>
|
||||
</data>
|
||||
<data name="ChkAutoCopy.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 21</value>
|
||||
@@ -145,14 +145,17 @@
|
||||
<data name="GrpCommand.Text" xml:space="preserve">
|
||||
<value>Команды - [Ctrl] Запуск и замена - [Shift] Добавить - [Alt] Только запустить - [|] Разделитель</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>684, 21</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 23</value>
|
||||
<value>120, 25</value>
|
||||
</data>
|
||||
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
|
||||
<value>Выполнить (F5)</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>Inherit</value>
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
</root>
|
@@ -131,6 +131,6 @@
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>Inherit</value>
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
</root>
|
@@ -26,7 +26,7 @@ namespace GrasscutterTools.GOOD
|
||||
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
|
||||
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Artifact.cs
|
||||
/// </summary>
|
||||
public class Artifact
|
||||
internal class Artifact
|
||||
{
|
||||
/// <summary>
|
||||
/// e.g. "GladiatorsFinale"
|
||||
|
@@ -26,7 +26,7 @@ namespace GrasscutterTools.GOOD
|
||||
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
|
||||
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Character.cs
|
||||
/// </summary>
|
||||
public class Character
|
||||
internal class Character
|
||||
{
|
||||
/// <summary>
|
||||
/// e.g. "Rosaria"
|
||||
|
@@ -38,7 +38,7 @@ namespace GrasscutterTools.GOOD
|
||||
/// https://genshin.mingyulab.com/
|
||||
/// https://genshin-center.com/
|
||||
/// </summary>
|
||||
public class GOOD
|
||||
internal class GOOD
|
||||
{
|
||||
[JsonProperty("format")]
|
||||
public string Format { get; set; }
|
||||
|
@@ -26,7 +26,7 @@ using GrasscutterTools.Properties;
|
||||
|
||||
namespace GrasscutterTools.GOOD
|
||||
{
|
||||
public static class GOODData
|
||||
internal static class GOODData
|
||||
{
|
||||
static GOODData()
|
||||
{
|
||||
|
@@ -28,7 +28,7 @@ namespace GrasscutterTools.GOOD
|
||||
/// Doc: https://frzyc.github.io/genshin-optimizer/#/doc
|
||||
/// Modified from https://github.com/Andrewthe13th/Inventory_Kamera/blob/master/InventoryKamera/game/Weapon.cs
|
||||
/// </summary>
|
||||
public class Weapon
|
||||
internal class Weapon
|
||||
{
|
||||
/// <summary>
|
||||
/// e.g. "CrescentPike"
|
||||
|
@@ -24,7 +24,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Activity
|
||||
{
|
||||
public class ActivityConfigItem
|
||||
internal class ActivityConfigItem
|
||||
{
|
||||
/// <summary>
|
||||
/// 活动ID
|
||||
|
@@ -1,4 +1,23 @@
|
||||
using Newtonsoft.Json;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
@@ -10,4 +29,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
|
||||
public bool IsUsed => !IsDisuse;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,23 @@
|
||||
using GrasscutterTools.Game.Props;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 GrasscutterTools.Game.Props;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
@@ -11,4 +30,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
[JsonProperty("qualityType"), JsonConverter(typeof(StringEnumConverter))]
|
||||
public QualityType QualityType { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,7 +1,30 @@
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("DungeonExcelConfigData.json")]
|
||||
internal class DungeonData : GameResource
|
||||
{
|
||||
[JsonProperty("sceneId")]
|
||||
public int SceneId { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,13 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("GadgetExcelConfigData.json")]
|
||||
internal class GadgetData
|
||||
internal class GadgetData : GameResource
|
||||
{
|
||||
[JsonProperty("type")]
|
||||
public string Type { get; set; }
|
||||
|
||||
[JsonProperty("jsonName")]
|
||||
public string JsonName { get; set; }
|
||||
|
||||
[JsonProperty("interactNameTextMapHash")]
|
||||
public long InteractNameTextMapHash { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
33
Source/GrasscutterTools/Game/Data/Excels/GatherData.cs
Normal file
33
Source/GrasscutterTools/Game/Data/Excels/GatherData.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("GatherExcelConfigData.json")]
|
||||
internal class GatherData
|
||||
{
|
||||
[JsonProperty("gadgetId")]
|
||||
public int GadgetId { get; set; }
|
||||
|
||||
[JsonProperty("itemId")]
|
||||
public int ItemId { get; set; }
|
||||
}
|
||||
}
|
@@ -1,4 +1,23 @@
|
||||
using Newtonsoft.Json;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
@@ -11,4 +30,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
[JsonProperty("bgmNameTextMapHash")]
|
||||
public long BgmNameTextMapHash { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,7 +1,30 @@
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("HomeWorldFurnitureExcelConfigData.json")]
|
||||
internal class HomeWorldFurnitureData : GameResource
|
||||
{
|
||||
[JsonProperty("furnitureGadgetID")]
|
||||
public int[] FurnitureGadgetId { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,21 @@
|
||||
using Newtonsoft.Json;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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/>.
|
||||
*
|
||||
**/
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
@@ -6,4 +23,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
internal class MainQuestData : GameResource
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,24 @@
|
||||
using System.Collections.Generic;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Collections.Generic;
|
||||
|
||||
using GrasscutterTools.Game.Inventory;
|
||||
using GrasscutterTools.Game.Props;
|
||||
|
||||
@@ -19,4 +39,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
[JsonProperty("itemUse")]
|
||||
public List<ItemUseData> ItemUse { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,24 @@
|
||||
using GrasscutterTools.Game.Props;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 GrasscutterTools.Game.Props;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
@@ -12,4 +32,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
[JsonProperty("type")]
|
||||
public MonsterType Type { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,23 @@
|
||||
using Newtonsoft.Json;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
@@ -14,4 +33,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
[JsonProperty("order")]
|
||||
public int Order { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,7 +1,26 @@
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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/>.
|
||||
*
|
||||
**/
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
[ResourceType("ReliquaryExcelConfigData.json")]
|
||||
internal class ReliquaryData : GameResource
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,24 @@
|
||||
using GrasscutterTools.Game.Props;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 GrasscutterTools.Game.Props;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
@@ -12,4 +32,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
[JsonProperty("scriptData")]
|
||||
public string ScriptData { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,23 @@
|
||||
using Newtonsoft.Json;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data.Excels
|
||||
{
|
||||
@@ -8,4 +27,4 @@ namespace GrasscutterTools.Game.Data.Excels
|
||||
[JsonProperty("rankLevel")]
|
||||
public int RankLevel { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,23 @@
|
||||
using Newtonsoft.Json;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Data
|
||||
{
|
||||
@@ -11,7 +30,7 @@ namespace GrasscutterTools.Game.Data
|
||||
public long NameTextMapHash { get; set; }
|
||||
|
||||
[JsonProperty("titleTextMapHash")]
|
||||
public string TitleTextMapHash { get; set; }
|
||||
public long TitleTextMapHash { get; set; }
|
||||
|
||||
[JsonProperty("descTextMapHash")]
|
||||
public long DescTextMapHash { get; set; }
|
||||
|
@@ -1,4 +1,23 @@
|
||||
using System;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
@@ -6,10 +25,10 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
using GrasscutterTools.Game.Data.Excels;
|
||||
using GrasscutterTools.Game.Inventory;
|
||||
using GrasscutterTools.Game.Props;
|
||||
using GrasscutterTools.GOOD;
|
||||
using GrasscutterTools.Utils;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
@@ -26,8 +45,12 @@ namespace GrasscutterTools.Game.Data
|
||||
|
||||
public Dictionary<int, DungeonData> DungeonData { get; set; }
|
||||
|
||||
public Dictionary<int, GadgetData> GadgetData { get; set; }
|
||||
|
||||
public List<GatherData> GatherData { get; set; }
|
||||
|
||||
public Dictionary<int, HomeWorldFurnitureData> HomeWorldFurnitureData { get; set; }
|
||||
|
||||
|
||||
public Dictionary<int, MainQuestData> MainQuestData { get; set; }
|
||||
|
||||
public Dictionary<int, QuestData> QuestData { get; set; }
|
||||
@@ -37,15 +60,13 @@ namespace GrasscutterTools.Game.Data
|
||||
public Dictionary<int, MonsterData> MonsterData { get; set; }
|
||||
|
||||
public Dictionary<int, ReliquaryData> ReliquaryData { get; set; }
|
||||
|
||||
|
||||
public Dictionary<int, SceneData> SceneData { get; set; }
|
||||
|
||||
public Dictionary<int, WeaponData> WeaponData { get; set; }
|
||||
|
||||
public TextMapData TextMapData { get; set; }
|
||||
|
||||
|
||||
|
||||
public GameResources(string resourcesDirPath, TextMapData textMapData)
|
||||
{
|
||||
TextMapData = textMapData;
|
||||
@@ -55,18 +76,24 @@ namespace GrasscutterTools.Game.Data
|
||||
{
|
||||
var type = property.PropertyType;
|
||||
if (!type.IsGenericType) continue;
|
||||
var gameResourceType = type.GetGenericArguments()[1];
|
||||
var attributes = (ResourceTypeAttribute[])gameResourceType.GetCustomAttributes(typeof(ResourceTypeAttribute), true);
|
||||
if (attributes.Length < 1) continue;
|
||||
var dataFile = Path.Combine(resourcesDirPath, "ExcelBinOutput", attributes[0].Name);
|
||||
var data = LoadDataFile(gameResourceType, dataFile);
|
||||
var genericArguments = type.GetGenericArguments();
|
||||
ResourceTypeAttribute attribute = null;
|
||||
foreach (var it in genericArguments)
|
||||
{
|
||||
var attributes = it.GetCustomAttributes(typeof(ResourceTypeAttribute), true);
|
||||
if (attributes.Length == 0) continue;
|
||||
attribute = (ResourceTypeAttribute)attributes[0];
|
||||
type = it;
|
||||
}
|
||||
if (attribute == null) continue;
|
||||
var dataFile = Path.Combine(resourcesDirPath, "ExcelBinOutput", attribute.Name);
|
||||
var data = LoadDataFile(type, dataFile);
|
||||
property.SetValue(this, data, null);
|
||||
}
|
||||
|
||||
|
||||
var illegalWeaponIds = new SparseSet(
|
||||
"10000-10008, 11411, 11506-11508, 12505, 12506, 12508, 12509," +
|
||||
"13503, 13506, 14411, 14503, 14505, 14508, 15504-15506, 20001");
|
||||
"13503, 13506, 14411, 14503, 14508, 15504-15506, 20001");
|
||||
foreach (var id in WeaponData.Keys.Where(id => illegalWeaponIds.Contains(id)).ToList())
|
||||
WeaponData.Remove(id);
|
||||
|
||||
@@ -99,6 +126,8 @@ namespace GrasscutterTools.Game.Data
|
||||
var list = (IList)JsonConvert.DeserializeObject(File.ReadAllText(path), typeof(List<>).MakeGenericType(type));
|
||||
if (list == null) return null;
|
||||
|
||||
if (!type.IsSubclassOf(typeof(GameResource))) return list;
|
||||
|
||||
var dicType = typeof(Dictionary<,>).MakeGenericType(typeof(int), type);
|
||||
var dic = (IDictionary)Activator.CreateInstance(dicType);
|
||||
foreach (GameResource gameResource in list)
|
||||
@@ -110,8 +139,8 @@ namespace GrasscutterTools.Game.Data
|
||||
{
|
||||
["zh-cn"] = "TextMapCHS",
|
||||
["zh-tw"] = "TextMapCHT",
|
||||
["en-us"] = "TextMapEN",
|
||||
["ru-ru"] = "TextMapRU",
|
||||
["en-us"] = "TextMapEN",
|
||||
["ru-ru"] = "TextMapRU",
|
||||
};
|
||||
|
||||
public void ConvertResources(string projectResourcesDir)
|
||||
@@ -128,17 +157,30 @@ namespace GrasscutterTools.Game.Data
|
||||
Thread.CurrentThread.CurrentUICulture = new CultureInfo(language.Key);
|
||||
GameData.LoadResources();
|
||||
|
||||
#region Achievement
|
||||
|
||||
// Achievement
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Achievement.txt"),
|
||||
AchievementData.Values.Where(it => it.IsUsed)
|
||||
.Select(it => $"{it.Id}:{TextMapData.GetText(it.TitleTextMapHash.ToString())} - {TextMapData.GetText(it.DescTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Achievement
|
||||
|
||||
#region Artifact
|
||||
|
||||
// Artifact
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Artifact.txt"),
|
||||
ReliquaryData.Values.OrderBy(it => it.Id).Select(it => $"{it.Id}:{TextMapData.GetText(it.NameTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Artifact
|
||||
|
||||
#region Avatar
|
||||
|
||||
// Avatar
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Avatar.txt"),
|
||||
MaterialData.Values
|
||||
@@ -146,11 +188,88 @@ namespace GrasscutterTools.Game.Data
|
||||
.Select(it => $"{it.Id}:{TextMapData.GetText(it.NameTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Avatar
|
||||
|
||||
#region Dungeon
|
||||
|
||||
// Dungeon
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Dungeon.txt"),
|
||||
DungeonData.Values.Select(it => $"{it.Id}:{TextMapData.GetText(it.NameTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Dungeon
|
||||
|
||||
#region Gadget
|
||||
|
||||
// Gadget
|
||||
sb.Clear();
|
||||
var gatherMap = new Dictionary<int, int>(GatherData.Count);
|
||||
foreach (var it in GatherData.Where(it => !gatherMap.ContainsKey(it.GadgetId)))
|
||||
gatherMap.Add(it.GadgetId, it.ItemId);
|
||||
var furnitureMap = new Dictionary<int, long>(HomeWorldFurnitureData.Count);
|
||||
foreach (var it in HomeWorldFurnitureData.Values.Where(it => it.FurnitureGadgetId != null))
|
||||
foreach (var gadgetId in it.FurnitureGadgetId.Where(id => id > 0 && !furnitureMap.ContainsKey(id)))
|
||||
furnitureMap.Add(gadgetId, it.NameTextMapHash);
|
||||
var oldFirst = language.Key.StartsWith("zh");
|
||||
foreach (var gadgetTypes in GadgetData.Values.OrderBy(it => it.Id).GroupBy(it => it.Type))
|
||||
{
|
||||
sb.Append("// ").AppendLine(GadgetType.ToTranslatedString(gadgetTypes.Key, language.Key));
|
||||
foreach (var it in gadgetTypes)
|
||||
{
|
||||
var name = oldFirst ? GameData.Gadgets[it.Id] : ItemMap.EmptyName;
|
||||
|
||||
if (name == ItemMap.EmptyName)
|
||||
{
|
||||
if (!TextMapData.TryGetText(it.NameTextMapHash.ToString(), out name)
|
||||
&& !TextMapData.TryGetText(it.InteractNameTextMapHash.ToString(), out name))
|
||||
{
|
||||
if (gatherMap.TryGetValue(it.Id, out var itemId)
|
||||
&& MaterialData.TryGetValue(itemId, out var item))
|
||||
{
|
||||
name = TextMapData.GetText(item.NameTextMapHash.ToString());
|
||||
}
|
||||
else if (furnitureMap.TryGetValue(it.Id, out var hash))
|
||||
{
|
||||
name = TextMapData.GetText(hash.ToString());
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(it.JsonName))
|
||||
{
|
||||
name = it.JsonName;
|
||||
}
|
||||
else if (!oldFirst)
|
||||
{
|
||||
var temp = GameData.Gadgets[it.Id];
|
||||
if (temp != ItemMap.EmptyName)
|
||||
name = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sb.AppendFormat("{0}:{1}", it.Id, name).AppendLine();
|
||||
}
|
||||
sb.AppendLine();
|
||||
}
|
||||
|
||||
// 旧的数据
|
||||
//var old = GameData.Gadgets.AllIds.Where(it => !GadgetData.ContainsKey(it));
|
||||
//if (old.Any())
|
||||
//{
|
||||
// sb.AppendLine("// Old lines");
|
||||
// foreach (var it in old)
|
||||
// sb.AppendFormat("{0}:{1}", it, GameData.Gadgets[it]).AppendLine();
|
||||
//}
|
||||
|
||||
File.WriteAllText(
|
||||
Path.Combine(dir, "Gadget.txt"),
|
||||
sb.ToString(),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Gadget
|
||||
|
||||
#region Item
|
||||
|
||||
// Item
|
||||
sb.Clear();
|
||||
foreach (var itemTypes in MaterialData.Values.GroupBy(it => it.ItemType))
|
||||
{
|
||||
@@ -195,7 +314,11 @@ namespace GrasscutterTools.Game.Data
|
||||
|
||||
File.WriteAllText(Path.Combine(dir, "Item.txt"), sb.ToString(), Encoding.UTF8);
|
||||
|
||||
#endregion Item
|
||||
|
||||
#region Monsters
|
||||
|
||||
// Monsters
|
||||
sb.Clear();
|
||||
foreach (var monsterType in MonsterData.Values.OrderBy(it => it.Id)
|
||||
.GroupBy(it => it.Type)
|
||||
@@ -225,29 +348,71 @@ namespace GrasscutterTools.Game.Data
|
||||
sb.ToString(),
|
||||
Encoding.UTF8);
|
||||
|
||||
File.WriteAllLines(
|
||||
#endregion Monsters
|
||||
|
||||
#region Quest
|
||||
|
||||
// Quest
|
||||
sb.Clear();
|
||||
foreach (var it in QuestData.Values.OrderBy(it => it.Id))
|
||||
{
|
||||
var name = GameData.Quests[it.Id];
|
||||
if (name == ItemMap.EmptyName)
|
||||
{
|
||||
sb.AppendFormat("{0}:{1} - {2}",
|
||||
it.Id,
|
||||
TextMapData.GetText(MainQuestData[it.MainId].TitleTextMapHash.ToString()),
|
||||
TextMapData.GetText(it.DescTextMapHash.ToString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.AppendFormat("{0}:{1}", it.Id, name);
|
||||
}
|
||||
sb.AppendLine();
|
||||
}
|
||||
File.WriteAllText(
|
||||
Path.Combine(dir, "Quest.txt"),
|
||||
QuestData.Values.OrderBy(it => it.Id).Select(it => $"{it.Id}:{TextMapData.GetText(MainQuestData[it.MainId].TitleTextMapHash)} - {TextMapData.GetText(it.DescTextMapHash.ToString())}"),
|
||||
sb.ToString(),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Quest
|
||||
|
||||
#region Scene
|
||||
|
||||
// Scene
|
||||
sb.Clear();
|
||||
foreach (var it in DungeonData.Values)
|
||||
{
|
||||
var scene = SceneData[it.SceneId];
|
||||
scene.NameTextMapHash = it.NameTextMapHash;
|
||||
}
|
||||
foreach (var it in SceneData.Values.OrderBy(it => it.Id))
|
||||
{
|
||||
var name = GameData.Scenes[it.Id];
|
||||
sb.AppendLine($"{it.Id}:{(name == ItemMap.EmptyName ? it.ScriptData : name)}");
|
||||
if (it.NameTextMapHash == 0 || !TextMapData.TryGetText(it.NameTextMapHash.ToString(), out var name))
|
||||
{
|
||||
name = GameData.Scenes[it.Id];
|
||||
if (name == ItemMap.EmptyName)
|
||||
name = it.ScriptData;
|
||||
}
|
||||
sb.AppendLine($"{it.Id}:{name}");
|
||||
}
|
||||
File.WriteAllText(
|
||||
Path.Combine(dir, "Scene.txt"),
|
||||
sb.ToString(),
|
||||
Encoding.UTF8);
|
||||
|
||||
#endregion Scene
|
||||
|
||||
#region Weapon
|
||||
|
||||
// Weapon
|
||||
File.WriteAllLines(
|
||||
Path.Combine(dir, "Weapon.txt"),
|
||||
WeaponData.Values.Select(it => $"{it.Id}:{TextMapData.GetText(it.NameTextMapHash.ToString())}"),
|
||||
Encoding.UTF8);
|
||||
}
|
||||
|
||||
#endregion Weapon
|
||||
}
|
||||
|
||||
File.WriteAllLines(
|
||||
Path.Combine(projectResourcesDir, "AvatarColor.txt"),
|
||||
@@ -258,7 +423,6 @@ namespace GrasscutterTools.Game.Data
|
||||
Path.Combine(projectResourcesDir, "WeaponColor.txt"),
|
||||
WeaponData.Values.Select(it => $"{it.Id}:{(it.RankLevel >= 5 ? "yellow" : it.RankLevel >= 4 ? "purple" : "blue")}"),
|
||||
Encoding.UTF8);
|
||||
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -266,4 +430,4 @@ namespace GrasscutterTools.Game.Data
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,9 +1,28 @@
|
||||
using System;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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;
|
||||
|
||||
namespace GrasscutterTools.Game.Data
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Class, Inherited = false)]
|
||||
public class ResourceTypeAttribute : Attribute
|
||||
internal class ResourceTypeAttribute : Attribute
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
@@ -12,4 +31,4 @@ namespace GrasscutterTools.Game.Data
|
||||
Name = name;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -28,7 +28,7 @@ namespace GrasscutterTools.Game.Gacha
|
||||
/// 使用这个只需替换掉你原来的的data/banner.json文件,
|
||||
/// 然后重启服务器和客户端,即可享受全卡池抽卡,卡池的选择方式是点击左右箭头进行切换
|
||||
/// </summary>
|
||||
public class GachaBanner
|
||||
internal class GachaBanner
|
||||
{
|
||||
/// <summary>
|
||||
/// 添加卡池请从400开始增加id数值进行添加,这个id需要每个池子不一样,
|
||||
|
@@ -25,7 +25,7 @@ namespace GrasscutterTools.Game.Gacha
|
||||
/// <summary>
|
||||
/// https://github.com/Grasscutters/Grasscutter/pull/639
|
||||
/// </summary>
|
||||
public class GachaBanner2
|
||||
internal class GachaBanner2
|
||||
{
|
||||
/// <summary>
|
||||
/// 添加卡池请从400开始增加id数值进行添加,这个id需要每个池子不一样,
|
||||
|
@@ -28,7 +28,7 @@ namespace GrasscutterTools.Game.Gacha
|
||||
/// <summary>
|
||||
/// https://github.com/Grasscutters/Grasscutter/pull/639
|
||||
/// </summary>
|
||||
public class GachaBanner3
|
||||
internal class GachaBanner3
|
||||
{
|
||||
/// <summary>
|
||||
/// 备注
|
||||
|
@@ -22,7 +22,7 @@ using System.Text;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
{
|
||||
public class GameCommand
|
||||
internal class GameCommand
|
||||
{
|
||||
public GameCommand(string name, string command)
|
||||
{
|
||||
|
@@ -22,7 +22,7 @@ using System.Collections.Generic;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
{
|
||||
public class ItemMap
|
||||
internal class ItemMap
|
||||
{
|
||||
public ItemMap(string idNamePairs)
|
||||
{
|
||||
|
@@ -25,7 +25,7 @@ namespace GrasscutterTools.Game
|
||||
/// <summary>
|
||||
/// ID映射组,Key为分类,双斜杠构造
|
||||
/// </summary>
|
||||
public class ItemMapGroup : Dictionary<string, ItemMap>
|
||||
internal class ItemMapGroup : Dictionary<string, ItemMap>
|
||||
{
|
||||
public ItemMapGroup(string idNamePairs)
|
||||
{
|
||||
@@ -64,6 +64,11 @@ namespace GrasscutterTools.Game
|
||||
/// </summary>
|
||||
public IEnumerable<string> AllLines => Values.SelectMany(it => it.Lines);
|
||||
|
||||
/// <summary>
|
||||
/// 获取所有ID
|
||||
/// </summary>
|
||||
public IEnumerable<int> AllIds => Values.SelectMany(it => it.Ids);
|
||||
|
||||
private string[] lines;
|
||||
public string[] Lines => lines ?? (lines = AllLines.ToArray());
|
||||
|
||||
|
@@ -27,7 +27,7 @@ namespace GrasscutterTools.Game.Mail
|
||||
/// <summary>
|
||||
/// 邮件
|
||||
/// </summary>
|
||||
public class Mail
|
||||
internal class Mail
|
||||
{
|
||||
/// <summary>
|
||||
/// 发件人
|
||||
|
92
Source/GrasscutterTools/Game/Props/GadgetType.cs
Normal file
92
Source/GrasscutterTools/Game/Props/GadgetType.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Collections.Generic;
|
||||
|
||||
namespace GrasscutterTools.Game.Props
|
||||
{
|
||||
internal static class GadgetType
|
||||
{
|
||||
private static readonly Dictionary<string, string> TextMapCHS = new Dictionary<string, string>
|
||||
{
|
||||
["Gear"] = "机关装置",
|
||||
["Field"] = "领域",
|
||||
["Bullet"] = "技能/飞弹",
|
||||
["Gadget"] = "Gadget",
|
||||
["AirflowField"] = "气流领域",
|
||||
["SpeedupField"] = "加速领域",
|
||||
["GatherObject"] = "采集物品",
|
||||
["Platform"] = "平台",
|
||||
["AmberWind"] = "风琥珀",
|
||||
["Vehicle"] = "载具",
|
||||
["MonsterEquip"] = "怪物装备",
|
||||
["Equip"] = "装备",
|
||||
["SubEquip"] = "副装备",
|
||||
["FishRod"] = "钓鱼竿",
|
||||
["Grass"] = "草",
|
||||
["Water"] = "水",
|
||||
["Tree"] = "树",
|
||||
["Bush"] = "灌木",
|
||||
["Lightning"] = "闪电",
|
||||
["CustomTile"] = "自定义贴图",
|
||||
["TransPointFirst"] = "传送点1",
|
||||
["TransPointSecond"] = "传送点2",
|
||||
["Chest"] = "宝箱",
|
||||
["GeneralRewardPoint"] = "通用奖励点",
|
||||
["OfferingGadget"] = "祭品Gadget",
|
||||
["Worktop"] = "工作台",
|
||||
["CustomGadget"] = "自定义Gadget",
|
||||
["BlackMud"] = "黑色泥浆",
|
||||
["DeshretObeliskGadget"] = "赤王方尖碑",
|
||||
["JourneyGearOperatorGadget"] = "旅途装备操作Gadget",
|
||||
["QuestGadget"] = "任务Gadget",
|
||||
["RoguelikeOperatorGadget"] = "肉鸽 操作台",
|
||||
["NightCrowGadget"] = "幽邃鸦眼",
|
||||
["MpPlayRewardPoint"] = "多人游戏奖励点",
|
||||
["CurveMoveGadget"] = "曲线移动Gadget",
|
||||
["RewardStatue"] = "地城奖励树",
|
||||
["RewardPoint"] = "循环地城奖励点",
|
||||
["Foundation"] = "底座",
|
||||
["Projector"] = "投影仪",
|
||||
["Screen"] = "屏幕",
|
||||
["CoinCollectLevelGadget"] = "金币收集等级Gadget",
|
||||
["EchoShell"] = "回声海螺",
|
||||
["UgcSpecialGadget"] = "UGC特殊Gadget",
|
||||
["UgcTowerLevelUpGadget"] = "UGC塔升级Gadget",
|
||||
["GatherPoint"] = "采集物挂接点",
|
||||
["MiracleRing"] = "奇迹之环",
|
||||
["EnvAnimal"] = "环境动物",
|
||||
["EnergyBall"] = "能量球",
|
||||
["SealGadget"] = "封印Gadget",
|
||||
["ViewPoint"] = "观景点",
|
||||
["FishPool"] = "钓鱼点",
|
||||
["ElemCrystal"] = "元素水晶",
|
||||
["Deprecated"] = "弃用",
|
||||
["WindSeed"] = "风种子",
|
||||
["UIInteractGadget"] = "界面交互Gadget",
|
||||
["Camera"] = "摄像机",
|
||||
};
|
||||
|
||||
public static string ToTranslatedString(string gadgetType, string language)
|
||||
{
|
||||
if (string.IsNullOrEmpty(gadgetType)) gadgetType = "Deprecated";
|
||||
return language.StartsWith("zh") ? TextMapCHS[gadgetType] : gadgetType;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,23 @@
|
||||
using Newtonsoft.Json;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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 Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Props
|
||||
{
|
||||
@@ -7,4 +26,4 @@ namespace GrasscutterTools.Game.Props
|
||||
[JsonProperty("useParam")]
|
||||
public string[] UseParam { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,22 @@
|
||||
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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/>.
|
||||
*
|
||||
**/
|
||||
|
||||
// ReSharper disable InconsistentNaming
|
||||
|
||||
using System.Collections.Generic;
|
||||
@@ -19,7 +37,6 @@ namespace GrasscutterTools.Game.Props
|
||||
MONSTER_PARTNER = 6,
|
||||
}
|
||||
|
||||
|
||||
internal static class ItemTypeExtension
|
||||
{
|
||||
private static readonly Dictionary<MonsterType, string> TextMapCHS = new Dictionary<MonsterType, string>
|
||||
@@ -32,6 +49,7 @@ namespace GrasscutterTools.Game.Props
|
||||
[MonsterType.MONSTER_FISH] = "鱼",
|
||||
[MonsterType.MONSTER_PARTNER] = "友军",
|
||||
};
|
||||
|
||||
private static readonly Dictionary<MonsterType, string> TextMapEN = new Dictionary<MonsterType, string>
|
||||
{
|
||||
[MonsterType.MONSTER_NONE] = "None",
|
||||
@@ -48,4 +66,4 @@ namespace GrasscutterTools.Game.Props
|
||||
return language.StartsWith("zh") ? TextMapCHS[materialType] : TextMapEN[materialType];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,22 @@
|
||||
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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/>.
|
||||
*
|
||||
**/
|
||||
|
||||
// ReSharper disable InconsistentNaming
|
||||
|
||||
namespace GrasscutterTools.Game.Props
|
||||
@@ -41,4 +59,4 @@ namespace GrasscutterTools.Game.Props
|
||||
//QUALITY_ORANGE_SP = 105,
|
||||
QUALITY_ORANGE_SP = 5,
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,4 +1,22 @@
|
||||
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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/>.
|
||||
*
|
||||
**/
|
||||
|
||||
// ReSharper disable InconsistentNaming
|
||||
|
||||
namespace GrasscutterTools.Game.Props
|
||||
@@ -13,4 +31,4 @@ namespace GrasscutterTools.Game.Props
|
||||
SCENE_HOME_ROOM = 5,
|
||||
SCENE_ACTIVITY = 6,
|
||||
}
|
||||
}
|
||||
}
|
@@ -25,7 +25,7 @@ using Newtonsoft.Json.Converters;
|
||||
|
||||
namespace GrasscutterTools.Game.Shop
|
||||
{
|
||||
public class ShopGoodsData
|
||||
internal class ShopGoodsData
|
||||
{
|
||||
[JsonProperty("goodsId")]
|
||||
public int GoodsId { get; set; }
|
||||
|
@@ -26,7 +26,7 @@ using Newtonsoft.Json.Converters;
|
||||
|
||||
namespace GrasscutterTools.Game.Shop
|
||||
{
|
||||
public class ShopInfo
|
||||
internal class ShopInfo
|
||||
{
|
||||
public ShopInfo()
|
||||
{
|
||||
|
@@ -23,7 +23,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game.Shop
|
||||
{
|
||||
public class ShopTable
|
||||
internal class ShopTable
|
||||
{
|
||||
[JsonProperty("shopId")]
|
||||
public int ShopType { get; set; }
|
||||
|
@@ -26,7 +26,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Game
|
||||
{
|
||||
public class TextMapData
|
||||
internal class TextMapData
|
||||
{
|
||||
public TextMapData(string resourcesDirPath)
|
||||
{
|
||||
|
@@ -143,6 +143,7 @@
|
||||
<Compile Include="Game\Data\Excels\AchievementData.cs" />
|
||||
<Compile Include="Game\Data\Excels\DungeonData.cs" />
|
||||
<Compile Include="Game\Data\Excels\GadgetData.cs" />
|
||||
<Compile Include="Game\Data\Excels\GatherData.cs" />
|
||||
<Compile Include="Game\Data\Excels\HomeWorldBgmData.cs" />
|
||||
<Compile Include="Game\Data\Excels\HomeWorldFurnitureData.cs" />
|
||||
<Compile Include="Game\Data\Excels\MaterialData.cs" />
|
||||
@@ -171,6 +172,7 @@
|
||||
<Compile Include="Game\Mail\Mail.cs" />
|
||||
<Compile Include="Game\Mail\MailItem.cs" />
|
||||
<Compile Include="Game\Player\PlayerData.cs" />
|
||||
<Compile Include="Game\Props\GadgetType.cs" />
|
||||
<Compile Include="Game\Props\ItemUseData.cs" />
|
||||
<Compile Include="Game\Props\MonsterType.cs" />
|
||||
<Compile Include="Game\Props\PlayerProperty.cs" />
|
||||
@@ -487,6 +489,7 @@
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Pages\PageGiveItem.resx">
|
||||
<DependentUpon>PageGiveItem.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Pages\PageGiveItem.ru-RU.resx">
|
||||
<DependentUpon>PageGiveItem.cs</DependentUpon>
|
||||
@@ -608,6 +611,7 @@
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Pages\PageSpawn.resx">
|
||||
<DependentUpon>PageSpawn.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Pages\PageSpawn.ru-RU.resx">
|
||||
<DependentUpon>PageSpawn.cs</DependentUpon>
|
||||
@@ -665,6 +669,7 @@
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<None Include="GrasscutterTools.licenseheader" />
|
||||
<None Include="GrasscutterTools.snk" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
@@ -764,6 +769,7 @@
|
||||
<Content Include="Resources\zh-tw\Cutscene.txt" />
|
||||
<Content Include="Resources\zh-tw\GachaBennerTitle.txt" />
|
||||
<Content Include="Resources\zh-tw\GachaBennerPrefab.txt" />
|
||||
<None Include="Resources\zh-tw\Gadget.txt" />
|
||||
<Content Include="Resources\zh-tw\Item.txt" />
|
||||
<Content Include="Resources\zh-tw\Monsters.txt" />
|
||||
<Content Include="Resources\zh-tw\PlayerProperty.txt" />
|
||||
|
19
Source/GrasscutterTools/GrasscutterTools.licenseheader
Normal file
19
Source/GrasscutterTools/GrasscutterTools.licenseheader
Normal file
@@ -0,0 +1,19 @@
|
||||
extensions: .cs
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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/>.
|
||||
*
|
||||
**/
|
@@ -26,7 +26,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.OpenCommand
|
||||
{
|
||||
public class OpenCommandAPI
|
||||
internal class OpenCommandAPI
|
||||
{
|
||||
public OpenCommandAPI(string host, string token = "")
|
||||
{
|
||||
|
@@ -117,310 +117,313 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name=">>BtnExportCustomCommands.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.Text" xml:space="preserve">
|
||||
<value>快捷键</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Text" xml:space="preserve">
|
||||
<value>重置</value>
|
||||
</data>
|
||||
<data name=">>BtnRemoveCustomCommand.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.11.0.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
</data>
|
||||
<data name=">>TxtCustomName.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="BtnSaveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>405, 206</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>471, 206</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="BtnLoadCustomCommands.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<data name="BtnExportCustomCommands.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name=">>BtnExportCustomCommands.Name" xml:space="preserve">
|
||||
<value>BtnExportCustomCommands</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>537, 206</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 30</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>41, 210</value>
|
||||
</data>
|
||||
<data name=">>FLPCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name=">>BtnExportCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="BtnExportCustomCommands.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name=">>BtnLoadCustomCommands.Name" xml:space="preserve">
|
||||
<value>BtnLoadCustomCommands</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="LblCustomName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name=">>LnkResetCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="BtnAddHotKey.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name=">>BtnLoadCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblCustomName.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="BtnExportCustomCommands.Text" xml:space="preserve">
|
||||
<value>导出</value>
|
||||
</data>
|
||||
<data name=">>LnkResetCustomCommands.Name" xml:space="preserve">
|
||||
<value>LnkResetCustomCommands</value>
|
||||
</data>
|
||||
<data name="LblCustomName.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name=">>BtnRemoveCustomCommand.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblCustomName.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 30</value>
|
||||
</data>
|
||||
<data name=">>BtnLoadCustomCommands.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="LblCustomName.Text" xml:space="preserve">
|
||||
<value>标签</value>
|
||||
</data>
|
||||
<data name=">>TxtCustomName.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 30</value>
|
||||
</data>
|
||||
<data name=">>GrpCustomCommands.Name" xml:space="preserve">
|
||||
<value>GrpCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>BtnAddHotKey.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>BtnRemoveCustomCommand.Name" xml:space="preserve">
|
||||
<value>BtnRemoveCustomCommand</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name=">>GrpCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>593, 206</value>
|
||||
</data>
|
||||
<data name="BtnExportCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 30</value>
|
||||
</data>
|
||||
<data name=">>FLPCustomCommands.Name" xml:space="preserve">
|
||||
<value>FLPCustomCommands</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="BtnExportCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>593, 206</value>
|
||||
<data name="BtnExportCustomCommands.Text" xml:space="preserve">
|
||||
<value>导出</value>
|
||||
</data>
|
||||
<data name=">>BtnLoadCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
<data name=">>BtnExportCustomCommands.Name" xml:space="preserve">
|
||||
<value>BtnExportCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>GrpCustomCommands.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>BtnSaveCustomCommand.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="LblCustomName.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name=">>BtnSaveCustomCommand.Type" xml:space="preserve">
|
||||
<data name=">>BtnExportCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 19</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>277, 23</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>602, -1</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Text" xml:space="preserve">
|
||||
<value>√ 保存</value>
|
||||
</data>
|
||||
<data name=">>LnkResetCustomCommands.Parent" xml:space="preserve">
|
||||
<value>GrpCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>FLPCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 17</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 30</value>
|
||||
</data>
|
||||
<data name=">>LblCustomName.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>TxtCustomName.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name=">>BtnRemoveCustomCommand.Parent" xml:space="preserve">
|
||||
<data name=">>BtnExportCustomCommands.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnSaveCustomCommand.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>324, 206</value>
|
||||
</data>
|
||||
<data name=">>FLPCustomCommands.Parent" xml:space="preserve">
|
||||
<value>GrpCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>LnkResetCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="BtnExportCustomCommands.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>634, 178</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>640, 200</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>PageCustomCommands</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.Text" xml:space="preserve">
|
||||
<value>列表</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Text" xml:space="preserve">
|
||||
<value>× 删除</value>
|
||||
</data>
|
||||
<data name=">>LblCustomName.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnExportCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>TxtCustomName.Name" xml:space="preserve">
|
||||
<value>TxtCustomName</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.AutoScroll" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>GrpCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<data name="BtnLoadCustomCommands.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name=">>BtnAddHotKey.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblCustomName.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 213</value>
|
||||
</data>
|
||||
<data name=">>BtnAddHotKey.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnSaveCustomCommand.Name" xml:space="preserve">
|
||||
<value>BtnSaveCustomCommand</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.Text" xml:space="preserve">
|
||||
<value>载入</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="LblCustomName.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>537, 206</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 30</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="BtnLoadCustomCommands.Text" xml:space="preserve">
|
||||
<value>载入</value>
|
||||
</data>
|
||||
<data name=">>BtnLoadCustomCommands.Name" xml:space="preserve">
|
||||
<value>BtnLoadCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>BtnLoadCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnLoadCustomCommands.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnLoadCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="LblCustomName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="LblCustomName.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblCustomName.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="LblCustomName.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 213</value>
|
||||
</data>
|
||||
<data name="LblCustomName.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name="LblCustomName.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="LblCustomName.Text" xml:space="preserve">
|
||||
<value>标签</value>
|
||||
</data>
|
||||
<data name=">>LblCustomName.Name" xml:space="preserve">
|
||||
<value>LblCustomName</value>
|
||||
</data>
|
||||
<data name=">>LblCustomName.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblCustomName.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LblCustomName.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>602, -1</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 17</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="LnkResetCustomCommands.Text" xml:space="preserve">
|
||||
<value>重置</value>
|
||||
</data>
|
||||
<data name=">>LnkResetCustomCommands.Name" xml:space="preserve">
|
||||
<value>LnkResetCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>LnkResetCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LnkResetCustomCommands.Parent" xml:space="preserve">
|
||||
<value>GrpCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>LnkResetCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.AutoScroll" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Microsoft YaHei UI, 11pt</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 19</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>634, 178</value>
|
||||
</data>
|
||||
<data name="FLPCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>FLPCustomCommands.Name" xml:space="preserve">
|
||||
<value>FLPCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>FLPCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>FLPCustomCommands.Parent" xml:space="preserve">
|
||||
<value>GrpCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>FLPCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>640, 200</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="GrpCustomCommands.Text" xml:space="preserve">
|
||||
<value>列表</value>
|
||||
</data>
|
||||
<data name=">>GrpCustomCommands.Name" xml:space="preserve">
|
||||
<value>GrpCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>GrpCustomCommands.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>GrpCustomCommands.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>GrpCustomCommands.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>471, 206</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 30</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="BtnRemoveCustomCommand.Text" xml:space="preserve">
|
||||
<value>× 删除</value>
|
||||
</data>
|
||||
<data name=">>BtnRemoveCustomCommand.Name" xml:space="preserve">
|
||||
<value>BtnRemoveCustomCommand</value>
|
||||
</data>
|
||||
<data name=">>BtnRemoveCustomCommand.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnRemoveCustomCommand.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnRemoveCustomCommand.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>405, 206</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 30</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="BtnSaveCustomCommand.Text" xml:space="preserve">
|
||||
<value>√ 保存</value>
|
||||
</data>
|
||||
<data name=">>BtnSaveCustomCommand.Name" xml:space="preserve">
|
||||
<value>BtnSaveCustomCommand</value>
|
||||
</data>
|
||||
<data name=">>BtnSaveCustomCommand.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnSaveCustomCommand.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnSaveCustomCommand.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>41, 210</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>277, 23</value>
|
||||
</data>
|
||||
<data name="TxtCustomName.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name=">>TxtCustomName.Name" xml:space="preserve">
|
||||
<value>TxtCustomName</value>
|
||||
</data>
|
||||
<data name=">>TxtCustomName.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>TxtCustomName.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>TxtCustomName.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>324, 206</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 30</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name="BtnAddHotKey.Text" xml:space="preserve">
|
||||
<value>快捷键</value>
|
||||
</data>
|
||||
<data name=">>BtnAddHotKey.Name" xml:space="preserve">
|
||||
<value>BtnAddHotKey</value>
|
||||
</data>
|
||||
<data name=">>BtnAddHotKey.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnAddHotKey.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnAddHotKey.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 17</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>PageCustomCommands</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.12.2.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
</data>
|
||||
</root>
|
@@ -43,7 +43,7 @@
|
||||
this.NUDGameItemAmout = new System.Windows.Forms.NumericUpDown();
|
||||
this.NUDGameItemLevel = new System.Windows.Forms.NumericUpDown();
|
||||
this.LblGiveCommandDescription = new System.Windows.Forms.Label();
|
||||
this.BtnFilterItem = new System.Windows.Forms.Button();
|
||||
this.CmbFilterItem = new System.Windows.Forms.ComboBox();
|
||||
this.MenuItemFilter = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.GrpGiveItemRecord.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDGameItemAmout)).BeginInit();
|
||||
@@ -162,12 +162,12 @@
|
||||
resources.ApplyResources(this.LblGiveCommandDescription, "LblGiveCommandDescription");
|
||||
this.LblGiveCommandDescription.Name = "LblGiveCommandDescription";
|
||||
//
|
||||
// BtnFilterItem
|
||||
// CmbFilterItem
|
||||
//
|
||||
resources.ApplyResources(this.BtnFilterItem, "BtnFilterItem");
|
||||
this.BtnFilterItem.Name = "BtnFilterItem";
|
||||
this.BtnFilterItem.UseVisualStyleBackColor = true;
|
||||
this.BtnFilterItem.Click += new System.EventHandler(this.BtnFilterItem_Click);
|
||||
this.CmbFilterItem.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
resources.ApplyResources(this.CmbFilterItem, "CmbFilterItem");
|
||||
this.CmbFilterItem.Name = "CmbFilterItem";
|
||||
this.CmbFilterItem.SelectedIndexChanged += new System.EventHandler(this.CmbFilterItem_SelectedIndexChanged);
|
||||
//
|
||||
// MenuItemFilter
|
||||
//
|
||||
@@ -178,7 +178,7 @@
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.BtnFilterItem);
|
||||
this.Controls.Add(this.CmbFilterItem);
|
||||
this.Controls.Add(this.LblClearGiveItemLogs);
|
||||
this.Controls.Add(this.BtnSaveGiveItemLog);
|
||||
this.Controls.Add(this.BtnRemoveGiveItemLog);
|
||||
@@ -215,7 +215,7 @@
|
||||
private System.Windows.Forms.NumericUpDown NUDGameItemAmout;
|
||||
private System.Windows.Forms.NumericUpDown NUDGameItemLevel;
|
||||
private System.Windows.Forms.Label LblGiveCommandDescription;
|
||||
private System.Windows.Forms.Button BtnFilterItem;
|
||||
private System.Windows.Forms.ComboBox CmbFilterItem;
|
||||
private System.Windows.Forms.ContextMenuStrip MenuItemFilter;
|
||||
}
|
||||
}
|
||||
|
@@ -41,33 +41,28 @@ namespace GrasscutterTools.Pages
|
||||
InitGiveItemRecord();
|
||||
}
|
||||
|
||||
private List<string[]> ItemList;
|
||||
|
||||
/// <summary>
|
||||
/// 初始化游戏物品列表
|
||||
/// </summary>
|
||||
public override void OnLoad()
|
||||
{
|
||||
MenuItemFilter.SuspendLayout();
|
||||
MenuItemFilter.Items.Clear();
|
||||
var types = new List<string>();
|
||||
var itemList = new List<string[]>();
|
||||
|
||||
types.Add(Resources.All);
|
||||
SelectedItemTypeLines = GameData.Items.Lines;
|
||||
var all = new ToolStripMenuItem
|
||||
{
|
||||
Text = Resources.All,
|
||||
Tag = SelectedItemTypeLines,
|
||||
};
|
||||
all.Click += OnItemFilterClick;
|
||||
MenuItemFilter.Items.Add(all);
|
||||
itemList.Add(SelectedItemTypeLines);
|
||||
foreach (var kv in GameData.Items)
|
||||
{
|
||||
var item = new ToolStripMenuItem
|
||||
{
|
||||
Text = kv.Key,
|
||||
Tag = kv.Value.Lines,
|
||||
};
|
||||
item.Click += OnItemFilterClick;
|
||||
MenuItemFilter.Items.Add(item);
|
||||
types.Add(kv.Key);
|
||||
itemList.Add(kv.Value.Lines);
|
||||
}
|
||||
MenuItemFilter.ResumeLayout();
|
||||
|
||||
CmbFilterItem.DataSource = types;
|
||||
ItemList = itemList;
|
||||
|
||||
LoadItemList();
|
||||
}
|
||||
|
||||
@@ -77,12 +72,14 @@ namespace GrasscutterTools.Pages
|
||||
private string[] SelectedItemTypeLines;
|
||||
|
||||
/// <summary>
|
||||
/// 物品类型过滤器类型选中时触发
|
||||
/// 点击过滤物品按钮时触发
|
||||
/// </summary>
|
||||
private void OnItemFilterClick(object sender, EventArgs e)
|
||||
private void CmbFilterItem_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
var btn = sender as ToolStripMenuItem;
|
||||
SelectedItemTypeLines = btn.Tag as string[];
|
||||
if (CmbFilterItem.SelectedIndex < 0 || ItemList == null) return;
|
||||
var lines = ItemList[CmbFilterItem.SelectedIndex];
|
||||
if (SelectedItemTypeLines == lines) return;
|
||||
SelectedItemTypeLines = lines;
|
||||
LoadItemList();
|
||||
}
|
||||
|
||||
@@ -150,13 +147,6 @@ namespace GrasscutterTools.Pages
|
||||
GenGiveItemCommand();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 点击过滤物品按钮时触发
|
||||
/// </summary>
|
||||
private void BtnFilterItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
MenuItemFilter.Show(BtnFilterItem, 0, BtnFilterItem.Height);
|
||||
}
|
||||
|
||||
#region -- 物品记录 --
|
||||
|
||||
|
@@ -301,10 +301,10 @@
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="TxtGameItemFilter.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>343, 3</value>
|
||||
<value>498, 3</value>
|
||||
</data>
|
||||
<data name="TxtGameItemFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>268, 23</value>
|
||||
<value>145, 23</value>
|
||||
</data>
|
||||
<data name="TxtGameItemFilter.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
@@ -493,35 +493,29 @@
|
||||
<data name=">>LblGiveCommandDescription.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="BtnFilterItem.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="BtnFilterItem.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<data name="CmbFilterItem.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnFilterItem.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>617, 3</value>
|
||||
<data name="CmbFilterItem.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>342, 2</value>
|
||||
</data>
|
||||
<data name="BtnFilterItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>26, 24</value>
|
||||
<data name="CmbFilterItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 25</value>
|
||||
</data>
|
||||
<data name="BtnFilterItem.TabIndex" type="System.Int32, mscorlib">
|
||||
<data name="CmbFilterItem.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="BtnFilterItem.Text" xml:space="preserve">
|
||||
<value>三</value>
|
||||
<data name=">>CmbFilterItem.Name" xml:space="preserve">
|
||||
<value>CmbFilterItem</value>
|
||||
</data>
|
||||
<data name=">>BtnFilterItem.Name" xml:space="preserve">
|
||||
<value>BtnFilterItem</value>
|
||||
<data name=">>CmbFilterItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnFilterItem.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnFilterItem.Parent" xml:space="preserve">
|
||||
<data name=">>CmbFilterItem.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnFilterItem.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<data name=">>CmbFilterItem.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<metadata name="MenuItemFilter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
@@ -545,6 +539,6 @@
|
||||
<value>PageGiveItem</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.7.6.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.12.1.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
</data>
|
||||
</root>
|
20
Source/GrasscutterTools/Pages/PageScene.Designer.cs
generated
20
Source/GrasscutterTools/Pages/PageScene.Designer.cs
generated
@@ -46,6 +46,8 @@
|
||||
this.ListScenes = new System.Windows.Forms.ListBox();
|
||||
this.LblTp = new System.Windows.Forms.Label();
|
||||
this.RbListCutScene = new System.Windows.Forms.RadioButton();
|
||||
this.ChkLockClimate = new System.Windows.Forms.CheckBox();
|
||||
this.BtnFreezeTime = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDTpZ)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDTpY)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.NUDTpX)).BeginInit();
|
||||
@@ -203,10 +205,26 @@
|
||||
this.RbListCutScene.UseVisualStyleBackColor = true;
|
||||
this.RbListCutScene.CheckedChanged += new System.EventHandler(this.RbListCutScene_CheckedChanged);
|
||||
//
|
||||
// ChkLockClimate
|
||||
//
|
||||
resources.ApplyResources(this.ChkLockClimate, "ChkLockClimate");
|
||||
this.ChkLockClimate.Name = "ChkLockClimate";
|
||||
this.ChkLockClimate.UseVisualStyleBackColor = true;
|
||||
this.ChkLockClimate.CheckedChanged += new System.EventHandler(this.ChkLockClimate_CheckedChanged);
|
||||
//
|
||||
// BtnFreezeTime
|
||||
//
|
||||
resources.ApplyResources(this.BtnFreezeTime, "BtnFreezeTime");
|
||||
this.BtnFreezeTime.Name = "BtnFreezeTime";
|
||||
this.BtnFreezeTime.UseVisualStyleBackColor = true;
|
||||
this.BtnFreezeTime.Click += new System.EventHandler(this.BtnFreezeTime_Click);
|
||||
//
|
||||
// PageScene
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.BtnFreezeTime);
|
||||
this.Controls.Add(this.ChkLockClimate);
|
||||
this.Controls.Add(this.RbListCutScene);
|
||||
this.Controls.Add(this.RbListDungeons);
|
||||
this.Controls.Add(this.RbListScene);
|
||||
@@ -252,5 +270,7 @@
|
||||
private System.Windows.Forms.ListBox ListScenes;
|
||||
private System.Windows.Forms.Label LblTp;
|
||||
private System.Windows.Forms.RadioButton RbListCutScene;
|
||||
private System.Windows.Forms.CheckBox ChkLockClimate;
|
||||
private System.Windows.Forms.Button BtnFreezeTime;
|
||||
}
|
||||
}
|
||||
|
@@ -156,5 +156,21 @@ namespace GrasscutterTools.Pages
|
||||
args += $" {GameData.Scenes.Ids[ListScenes.SelectedIndex]}";
|
||||
SetCommand("/tp", args);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 锁定天气
|
||||
/// </summary>
|
||||
private void ChkLockClimate_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
SetCommand("/prop", $"is_weather_locked {(ChkLockClimate.Checked ? "on" : "off")}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 冻结游戏时间
|
||||
/// </summary>
|
||||
private void BtnFreezeTime_Click(object sender, EventArgs e)
|
||||
{
|
||||
SetCommand("/prop", "is_game_time_locked on");
|
||||
}
|
||||
}
|
||||
}
|
@@ -182,4 +182,13 @@ In the command, you can use ~ to indicate the current position, and ~N to indica
|
||||
<data name="RbListCutScene.Text" xml:space="preserve">
|
||||
<value>Cutscene</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>54, 21</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Text" xml:space="preserve">
|
||||
<value>Lock</value>
|
||||
</data>
|
||||
<data name="BtnFreezeTime.Text" xml:space="preserve">
|
||||
<value>Freeze Time</value>
|
||||
</data>
|
||||
</root>
|
@@ -129,7 +129,7 @@
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="BtnTeleport.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
<value>75, 25</value>
|
||||
</data>
|
||||
<data name=">>TxtSceneFilter.Name" xml:space="preserve">
|
||||
<value>TxtSceneFilter</value>
|
||||
@@ -145,7 +145,7 @@
|
||||
<value>14, 17</value>
|
||||
</data>
|
||||
<data name=">>RbListCutScene.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>LblTpY.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -163,19 +163,22 @@
|
||||
<value>343, 28</value>
|
||||
</data>
|
||||
<data name=">>CmbClimateType.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name=">>LblSceneDescription.Name" xml:space="preserve">
|
||||
<value>LblSceneDescription</value>
|
||||
</data>
|
||||
<data name=">>BtnTeleport.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
<data name="NUDTpZ.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>192, 31</value>
|
||||
</data>
|
||||
<data name="LblTp.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name=">>NUDTpZ.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
<data name="LblTpZ.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name=">>LblSceneDescription.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -189,11 +192,11 @@
|
||||
<data name=">>ChkIncludeSceneId.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>CmbClimateType.Name" xml:space="preserve">
|
||||
<value>CmbClimateType</value>
|
||||
<data name=">>BtnTeleport.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name=">>ChkIncludeSceneId.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>NUDTpY.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -208,10 +211,10 @@
|
||||
<value>14, 17</value>
|
||||
</data>
|
||||
<data name=">>RbListScene.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="NUDTpY.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>129, 156</value>
|
||||
<data name=">>BtnFreezeTime.Name" xml:space="preserve">
|
||||
<value>BtnFreezeTime</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>7, 17</value>
|
||||
@@ -243,14 +246,11 @@
|
||||
<data name=">>ListScenes.Name" xml:space="preserve">
|
||||
<value>ListScenes</value>
|
||||
</data>
|
||||
<data name=">>LblTpZ.Name" xml:space="preserve">
|
||||
<value>LblTpZ</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name=">>NUDTpX.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="RbListScene.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@@ -258,8 +258,11 @@
|
||||
<data name="ChkIncludeSceneId.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="NUDTpY.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name=">>LblTpZ.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name=">>LblTpZ.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -267,17 +270,20 @@
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>PageScene</value>
|
||||
</data>
|
||||
<data name=">>NUDTpY.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
<data name=">>ChkLockClimate.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>LblTp.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name=">>NUDTpY.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name=">>LblTpY.Name" xml:space="preserve">
|
||||
<value>LblTpY</value>
|
||||
</data>
|
||||
<data name="NUDTpZ.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
<data name="LblTpY.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>LblTpY.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name=">>NUDTpX.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@@ -292,7 +298,7 @@
|
||||
<value>RbListCutScene</value>
|
||||
</data>
|
||||
<data name=">>NUDTpZ.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="LblTpY.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
@@ -309,6 +315,9 @@
|
||||
<data name="NUDTpZ.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 23</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name=">>NUDTpX.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -324,9 +333,6 @@
|
||||
<data name="LblTpY.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name=">>BtnTeleport.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name=">>NUDTpZ.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -339,6 +345,9 @@
|
||||
<data name="RbListDungeons.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnFreezeTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>215, 184</value>
|
||||
</data>
|
||||
<data name="LblTpY.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>109, 158</value>
|
||||
</data>
|
||||
@@ -366,11 +375,14 @@
|
||||
<data name="LblClimateType.Text" xml:space="preserve">
|
||||
<value>设置天气</value>
|
||||
</data>
|
||||
<data name=">>LblClimateType.Type" xml:space="preserve">
|
||||
<data name="BtnFreezeTime.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name=">>LblTp.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="LblTpY.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
<data name=">>ChkLockClimate.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="NUDTpZ.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
@@ -381,21 +393,36 @@
|
||||
<data name="CmbClimateType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>121, 25</value>
|
||||
</data>
|
||||
<data name=">>BtnFreezeTime.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="LblTpX.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 158</value>
|
||||
</data>
|
||||
<data name="LblClimateType.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>LblClimateType.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
|
||||
<value>含场景ID</value>
|
||||
</data>
|
||||
<data name="BtnFreezeTime.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
<data name=">>LblTpZ.Name" xml:space="preserve">
|
||||
<value>LblTpZ</value>
|
||||
</data>
|
||||
<data name=">>CmbClimateType.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="LblTpZ.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name=">>BtnFreezeTime.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>RbListDungeons.Name" xml:space="preserve">
|
||||
<value>RbListDungeons</value>
|
||||
</data>
|
||||
@@ -405,11 +432,11 @@
|
||||
<data name="RbListDungeons.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>287, 30</value>
|
||||
</data>
|
||||
<data name=">>LblTpY.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
<data name="BtnFreezeTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 25</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.10.0.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.12.2.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
</data>
|
||||
<data name="LblTp.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
@@ -423,8 +450,8 @@
|
||||
<data name=">>ListScenes.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ListBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnTeleport.Name" xml:space="preserve">
|
||||
<value>BtnTeleport</value>
|
||||
<data name="NUDTpX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 23</value>
|
||||
</data>
|
||||
<data name="NUDTpY.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
@@ -438,9 +465,12 @@
|
||||
<data name="ListScenes.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 208</value>
|
||||
</data>
|
||||
<data name=">>LblTp.Parent" xml:space="preserve">
|
||||
<data name=">>NUDTpZ.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>ChkLockClimate.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="BtnTeleport.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
</data>
|
||||
@@ -448,16 +478,19 @@
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>87, 187</value>
|
||||
<value>87, 188</value>
|
||||
</data>
|
||||
<data name=">>BtnFreezeTime.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblTp.Name" xml:space="preserve">
|
||||
<value>LblTp</value>
|
||||
</data>
|
||||
<data name="LblTpY.Text" xml:space="preserve">
|
||||
<value>y</value>
|
||||
</data>
|
||||
<data name="LblSceneDescription.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>LblSceneDescription.ZOrder" xml:space="preserve">
|
||||
<value>14</value>
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="RbListScene.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 21</value>
|
||||
@@ -465,12 +498,18 @@
|
||||
<data name="LblTp.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblTpZ.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
<data name="LblSceneDescription.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Text" xml:space="preserve">
|
||||
<value>锁定</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="RbListCutScene.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
@@ -481,7 +520,7 @@
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name=">>RbListDungeons.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="LblSceneDescription.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@@ -495,8 +534,8 @@
|
||||
<data name="ChkIncludeSceneId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 21</value>
|
||||
</data>
|
||||
<data name="TxtSceneFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 23</value>
|
||||
<data name=">>BtnTeleport.Name" xml:space="preserve">
|
||||
<value>BtnTeleport</value>
|
||||
</data>
|
||||
<data name="LblTpZ.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@@ -507,11 +546,11 @@
|
||||
<data name=">>NUDTpY.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="TxtSceneFilter.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
<data name=">>ChkLockClimate.Name" xml:space="preserve">
|
||||
<value>ChkLockClimate</value>
|
||||
</data>
|
||||
<data name=">>LblClimateType.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
<value>15</value>
|
||||
</data>
|
||||
<data name=">>CmbClimateType.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -519,6 +558,9 @@
|
||||
<data name=">>RbListCutScene.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="BtnFreezeTime.Text" xml:space="preserve">
|
||||
<value>冻结时间</value>
|
||||
</data>
|
||||
<data name=">>TxtSceneFilter.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -526,16 +568,22 @@
|
||||
<value>场景控制</value>
|
||||
</data>
|
||||
<data name=">>LblTpX.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="NUDTpX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 23</value>
|
||||
<data name="TxtSceneFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 23</value>
|
||||
</data>
|
||||
<data name=">>CmbClimateType.Name" xml:space="preserve">
|
||||
<value>CmbClimateType</value>
|
||||
</data>
|
||||
<data name=">>RbListDungeons.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>LblTp.ZOrder" xml:space="preserve">
|
||||
<value>16</value>
|
||||
<value>18</value>
|
||||
</data>
|
||||
<data name=">>LblTp.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>NUDTpY.Name" xml:space="preserve">
|
||||
<value>NUDTpY</value>
|
||||
@@ -552,6 +600,9 @@
|
||||
<data name="RbListScene.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 21</value>
|
||||
</data>
|
||||
<data name="LblTpX.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left</value>
|
||||
</data>
|
||||
@@ -570,17 +621,17 @@
|
||||
<data name="BtnTeleport.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 185</value>
|
||||
</data>
|
||||
<data name=">>LblTp.Name" xml:space="preserve">
|
||||
<value>LblTp</value>
|
||||
<data name="TxtSceneFilter.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name=">>TxtSceneFilter.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>LblClimateType.Name" xml:space="preserve">
|
||||
<value>LblClimateType</value>
|
||||
</data>
|
||||
<data name=">>ListScenes.ZOrder" xml:space="preserve">
|
||||
<value>15</value>
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name="TxtSceneFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
@@ -603,6 +654,9 @@
|
||||
<data name=">>ListScenes.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>BtnTeleport.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>LblSceneDescription.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -618,8 +672,8 @@
|
||||
<data name=">>LblClimateType.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="NUDTpY.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
<data name="NUDTpY.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>129, 156</value>
|
||||
</data>
|
||||
<data name="LblTp.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
|
@@ -140,10 +140,10 @@
|
||||
<value>84, 215</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 21</value>
|
||||
<value>126, 21</value>
|
||||
</data>
|
||||
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
|
||||
<value>Включить идентификатор сцены</value>
|
||||
<value>Включить сцену</value>
|
||||
</data>
|
||||
<data name="LblTpZ.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>212, 186</value>
|
||||
@@ -169,6 +169,9 @@
|
||||
<data name="NUDTpX.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>20, 184</value>
|
||||
</data>
|
||||
<data name="CmbClimateType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 25</value>
|
||||
</data>
|
||||
<data name="LblClimateType.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 17</value>
|
||||
</data>
|
||||
@@ -206,4 +209,22 @@
|
||||
<data name="RbListCutScene.Text" xml:space="preserve">
|
||||
<value>Катсцена</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>171, 30</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 21</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Text" xml:space="preserve">
|
||||
<value>Замок</value>
|
||||
</data>
|
||||
<data name="BtnFreezeTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>212, 211</value>
|
||||
</data>
|
||||
<data name="BtnFreezeTime.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>125, 25</value>
|
||||
</data>
|
||||
<data name="BtnFreezeTime.Text" xml:space="preserve">
|
||||
<value>Время заморозки</value>
|
||||
</data>
|
||||
</root>
|
@@ -148,4 +148,10 @@
|
||||
<data name="RbListCutScene.Text" xml:space="preserve">
|
||||
<value>過場</value>
|
||||
</data>
|
||||
<data name="ChkLockClimate.Text" xml:space="preserve">
|
||||
<value>鎖定</value>
|
||||
</data>
|
||||
<data name="BtnFreezeTime.Text" xml:space="preserve">
|
||||
<value>凍結時間</value>
|
||||
</data>
|
||||
</root>
|
16
Source/GrasscutterTools/Pages/PageSpawn.Designer.cs
generated
16
Source/GrasscutterTools/Pages/PageSpawn.Designer.cs
generated
@@ -90,7 +90,7 @@
|
||||
this.ListEntity = new System.Windows.Forms.ListBox();
|
||||
this.PanelEntityFilterBar = new System.Windows.Forms.Panel();
|
||||
this.TxtEntityFilter = new System.Windows.Forms.TextBox();
|
||||
this.BtnFilterEntity = new System.Windows.Forms.Button();
|
||||
this.CmbFilterEntity = new System.Windows.Forms.ComboBox();
|
||||
this.TPSpawnRecords = new System.Windows.Forms.TabPage();
|
||||
this.ListSpawnLogs = new System.Windows.Forms.ListBox();
|
||||
this.FLPSpawnRecordControls = new System.Windows.Forms.FlowLayoutPanel();
|
||||
@@ -707,7 +707,7 @@
|
||||
// PanelEntityFilterBar
|
||||
//
|
||||
this.PanelEntityFilterBar.Controls.Add(this.TxtEntityFilter);
|
||||
this.PanelEntityFilterBar.Controls.Add(this.BtnFilterEntity);
|
||||
this.PanelEntityFilterBar.Controls.Add(this.CmbFilterEntity);
|
||||
resources.ApplyResources(this.PanelEntityFilterBar, "PanelEntityFilterBar");
|
||||
this.PanelEntityFilterBar.Name = "PanelEntityFilterBar";
|
||||
//
|
||||
@@ -717,12 +717,12 @@
|
||||
this.TxtEntityFilter.Name = "TxtEntityFilter";
|
||||
this.TxtEntityFilter.TextChanged += new System.EventHandler(this.TxtEntityFilter_TextChanged);
|
||||
//
|
||||
// BtnFilterEntity
|
||||
// CmbFilterEntity
|
||||
//
|
||||
resources.ApplyResources(this.BtnFilterEntity, "BtnFilterEntity");
|
||||
this.BtnFilterEntity.Name = "BtnFilterEntity";
|
||||
this.BtnFilterEntity.UseVisualStyleBackColor = true;
|
||||
this.BtnFilterEntity.Click += new System.EventHandler(this.BtnFilterEntity_Click);
|
||||
this.CmbFilterEntity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
resources.ApplyResources(this.CmbFilterEntity, "CmbFilterEntity");
|
||||
this.CmbFilterEntity.Name = "CmbFilterEntity";
|
||||
this.CmbFilterEntity.SelectedIndexChanged += new System.EventHandler(this.CmbFilterEntity_SelectedIndexChanged);
|
||||
//
|
||||
// TPSpawnRecords
|
||||
//
|
||||
@@ -879,7 +879,7 @@
|
||||
private System.Windows.Forms.ListBox ListEntity;
|
||||
private System.Windows.Forms.Panel PanelEntityFilterBar;
|
||||
private System.Windows.Forms.TextBox TxtEntityFilter;
|
||||
private System.Windows.Forms.Button BtnFilterEntity;
|
||||
private System.Windows.Forms.ComboBox CmbFilterEntity;
|
||||
private System.Windows.Forms.TabPage TPSpawnRecords;
|
||||
private System.Windows.Forms.ListBox ListSpawnLogs;
|
||||
private System.Windows.Forms.FlowLayoutPanel FLPSpawnRecordControls;
|
||||
|
@@ -52,43 +52,31 @@ namespace GrasscutterTools.Pages
|
||||
|
||||
#region -- 实体列表 --
|
||||
|
||||
private List<string[]> EntityList;
|
||||
|
||||
/// <summary>
|
||||
/// 初始化实体列表
|
||||
/// </summary>
|
||||
private void InitEntityList()
|
||||
{
|
||||
// 初始化列表类型过滤器
|
||||
MenuSpawnEntityFilter.SuspendLayout();
|
||||
MenuSpawnEntityFilter.Items.Clear();
|
||||
var types = new List<string>();
|
||||
var entityList = new List<string[]>();
|
||||
|
||||
types.Add(Resources.All);
|
||||
// 默认显示所有
|
||||
SelectedEntityTypeLines = GameData.Monsters.AllLines.Concat(GameData.Gadgets.AllLines).ToArray();
|
||||
var all = new ToolStripMenuItem
|
||||
{
|
||||
Text = Resources.All,
|
||||
Tag = SelectedEntityTypeLines,
|
||||
};
|
||||
all.Click += OnEntityTypeFilterClick;
|
||||
MenuSpawnEntityFilter.Items.Add(all);
|
||||
void AddTypes(ItemMapGroup group)
|
||||
{
|
||||
foreach (var kv in group)
|
||||
{
|
||||
var item = new ToolStripMenuItem
|
||||
{
|
||||
Text = kv.Key,
|
||||
Tag = kv.Value.Lines,
|
||||
};
|
||||
item.Click += OnEntityTypeFilterClick;
|
||||
MenuSpawnEntityFilter.Items.Add(item);
|
||||
}
|
||||
}
|
||||
//MenuSpawnEntityFilter.Items.Add(new ToolStripLabel("Monsters"));
|
||||
AddTypes(GameData.Monsters);
|
||||
MenuSpawnEntityFilter.Items.Add(new ToolStripSeparator());
|
||||
//MenuSpawnEntityFilter.Items.Add(new ToolStripLabel("Gadgets"));
|
||||
AddTypes(GameData.Gadgets);
|
||||
MenuSpawnEntityFilter.ResumeLayout();
|
||||
entityList.Add(SelectedEntityTypeLines);
|
||||
types.AddRange(GameData.Monsters.Select(it => it.Key));
|
||||
entityList.AddRange(GameData.Monsters.Select(it => it.Value.Lines));
|
||||
types.AddRange(GameData.Gadgets.Select(it => it.Key));
|
||||
entityList.AddRange(GameData.Gadgets.Select(it => it.Value.Lines));
|
||||
|
||||
CmbFilterEntity.DataSource = types;
|
||||
EntityList = entityList;
|
||||
|
||||
|
||||
//Console.WriteLine(string.Join("\n", GameData.Gadgets.Keys));
|
||||
|
||||
LoadEntityList();
|
||||
}
|
||||
|
||||
@@ -97,13 +85,16 @@ namespace GrasscutterTools.Pages
|
||||
/// </summary>
|
||||
private string[] SelectedEntityTypeLines;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 实体类型过滤器类型选中时触发
|
||||
/// 类别选中时触发
|
||||
/// </summary>
|
||||
private void OnEntityTypeFilterClick(object sender, EventArgs e)
|
||||
private void CmbFilterEntity_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
var btn = sender as ToolStripMenuItem;
|
||||
SelectedEntityTypeLines = btn.Tag as string[];
|
||||
if (CmbFilterEntity.SelectedIndex < 0 || EntityList == null) return;
|
||||
var lines = EntityList[CmbFilterEntity.SelectedIndex];
|
||||
if (SelectedEntityTypeLines == lines) return;
|
||||
SelectedEntityTypeLines = lines;
|
||||
LoadEntityList();
|
||||
}
|
||||
|
||||
@@ -122,14 +113,7 @@ namespace GrasscutterTools.Pages
|
||||
{
|
||||
LoadEntityList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 实体列表类型过滤按钮点击时触发
|
||||
/// </summary>
|
||||
private void BtnFilterEntity_Click(object sender, EventArgs e)
|
||||
{
|
||||
MenuSpawnEntityFilter.Show(BtnFilterEntity, 0, BtnFilterEntity.Height);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 实体列表选中项改变时触发
|
||||
@@ -387,5 +371,6 @@ namespace GrasscutterTools.Pages
|
||||
}
|
||||
|
||||
#endregion -- 攻击注入参数 --
|
||||
|
||||
}
|
||||
}
|
@@ -1594,10 +1594,10 @@
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="TxtEntityFilter.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 3</value>
|
||||
<value>153, 3</value>
|
||||
</data>
|
||||
<data name="TxtEntityFilter.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>242, 23</value>
|
||||
<value>118, 23</value>
|
||||
</data>
|
||||
<data name="TxtEntityFilter.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@@ -1614,34 +1614,28 @@
|
||||
<data name=">>TxtEntityFilter.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="BtnFilterEntity.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name="BtnFilterEntity.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<data name="CmbFilterEntity.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="BtnFilterEntity.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>245, 3</value>
|
||||
<data name="CmbFilterEntity.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 2</value>
|
||||
</data>
|
||||
<data name="BtnFilterEntity.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>26, 24</value>
|
||||
<data name="CmbFilterEntity.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 25</value>
|
||||
</data>
|
||||
<data name="BtnFilterEntity.TabIndex" type="System.Int32, mscorlib">
|
||||
<data name="CmbFilterEntity.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="BtnFilterEntity.Text" xml:space="preserve">
|
||||
<value>三</value>
|
||||
<data name=">>CmbFilterEntity.Name" xml:space="preserve">
|
||||
<value>CmbFilterEntity</value>
|
||||
</data>
|
||||
<data name=">>BtnFilterEntity.Name" xml:space="preserve">
|
||||
<value>BtnFilterEntity</value>
|
||||
<data name=">>CmbFilterEntity.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnFilterEntity.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>BtnFilterEntity.Parent" xml:space="preserve">
|
||||
<data name=">>CmbFilterEntity.Parent" xml:space="preserve">
|
||||
<value>PanelEntityFilterBar</value>
|
||||
</data>
|
||||
<data name=">>BtnFilterEntity.ZOrder" xml:space="preserve">
|
||||
<data name=">>CmbFilterEntity.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="PanelEntityFilterBar.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
@@ -1909,6 +1903,6 @@
|
||||
<value>PageSpawn</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.10.1.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
<value>GrasscutterTools.Pages.BasePage, GrasscutterTools, Version=1.12.1.0, Culture=neutral, PublicKeyToken=de2b1c089621e923</value>
|
||||
</data>
|
||||
</root>
|
@@ -1,4 +1,23 @@
|
||||
using System;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.IO;
|
||||
using System.Linq;
|
||||
@@ -9,7 +28,6 @@ using GrasscutterTools.Game;
|
||||
using GrasscutterTools.Game.Activity;
|
||||
using GrasscutterTools.Game.CutScene;
|
||||
using GrasscutterTools.Game.Data;
|
||||
using GrasscutterTools.Game.Dungeon;
|
||||
using GrasscutterTools.Properties;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
@@ -122,10 +140,6 @@ namespace GrasscutterTools.Pages
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private TextMapData TextMapData;
|
||||
private GameResources GameResources;
|
||||
|
||||
@@ -134,7 +148,7 @@ namespace GrasscutterTools.Pages
|
||||
try
|
||||
{
|
||||
if (!CheckInputPaths()) return;
|
||||
|
||||
|
||||
if (TextMapData == null)
|
||||
TextMapData = new TextMapData(TxtGcResRoot.Text);
|
||||
if (GameResources == null)
|
||||
@@ -149,13 +163,6 @@ namespace GrasscutterTools.Pages
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private void BtnUpdateActivity_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
@@ -208,6 +215,5 @@ namespace GrasscutterTools.Pages
|
||||
// activityItems.Select(it => $"{it.ActivityId}:{TextMapData.GetText(it.NameTextMapHash)}"),
|
||||
// Encoding.UTF8);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -31,5 +31,5 @@ using System.Runtime.InteropServices;
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.12.1")]
|
||||
[assembly: AssemblyFileVersion("1.12.1")]
|
||||
[assembly: AssemblyVersion("1.12.2")]
|
||||
[assembly: AssemblyFileVersion("1.12.2")]
|
@@ -363,4 +363,7 @@ Improvement suggestions have been submitted, please use caution to send emails t
|
||||
<data name="PageHotKey" xml:space="preserve">
|
||||
<value>HotKey</value>
|
||||
</data>
|
||||
<data name="Gadget" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\en-us\Gadget.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
</root>
|
@@ -351,4 +351,7 @@
|
||||
<data name="PageHotKey" xml:space="preserve">
|
||||
<value>Горячая клавиша</value>
|
||||
</data>
|
||||
<data name="Gadget" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ru-ru\Gadget.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
</root>
|
@@ -357,4 +357,7 @@
|
||||
<data name="PageHotKey" xml:space="preserve">
|
||||
<value>快捷鍵</value>
|
||||
</data>
|
||||
<data name="Gadget" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\zh-tw\Gadget.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
|
||||
</data>
|
||||
</root>
|
@@ -130,6 +130,7 @@
|
||||
14501:yellow
|
||||
14502:yellow
|
||||
14504:yellow
|
||||
14505:yellow
|
||||
14506:yellow
|
||||
14509:yellow
|
||||
14511:yellow
|
||||
|
@@ -75,4 +75,8 @@ All skins
|
||||
Monthly cards
|
||||
/give 1202 x999
|
||||
Troubleshoot
|
||||
/troubleshoot
|
||||
/troubleshoot
|
||||
Unlock flight
|
||||
/prop fly on
|
||||
Take off!
|
||||
/tp ~ ~100 ~
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -130,6 +130,7 @@
|
||||
14501:Skyward Atlas
|
||||
14502:Lost Prayer to the Sacred Winds
|
||||
14504:Memory of Dust
|
||||
14505:Jadefall's Splendor
|
||||
14506:Everlasting Moonglow
|
||||
14509:Kagura's Verity
|
||||
14511:A Thousand Floating Dreams
|
||||
|
@@ -75,4 +75,8 @@
|
||||
Ежемесячные карты
|
||||
/give 1202 x999
|
||||
Устранение неполадок
|
||||
/troubleshoot
|
||||
/troubleshoot
|
||||
Разблокировать полет
|
||||
/prop fly on
|
||||
Снимать!
|
||||
/tp ~ ~100 ~
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -130,6 +130,7 @@
|
||||
14501:Небесный атлас
|
||||
14502:Молитва святым ветрам
|
||||
14504:Память о пыли
|
||||
14505:Великолепие лазурного свода
|
||||
14506:Вечное лунное сияние
|
||||
14509:Истина кагура
|
||||
14511:Сновидения тысячи ночей
|
||||
|
@@ -75,4 +75,8 @@
|
||||
月卡
|
||||
/give 1202 x999
|
||||
排故信息
|
||||
/troubleshoot
|
||||
/troubleshoot
|
||||
风之翼
|
||||
/prop fly on
|
||||
芜湖~起飞!
|
||||
/tp ~ ~100 ~
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -130,6 +130,7 @@
|
||||
14501:天空之卷
|
||||
14502:四风原典
|
||||
14504:尘世之锁
|
||||
14505:碧落之珑
|
||||
14506:不灭月华
|
||||
14509:神乐之真意
|
||||
14511:千夜浮梦
|
||||
|
@@ -75,4 +75,8 @@
|
||||
月卡
|
||||
/give 1202 x999
|
||||
排故信息
|
||||
/troubleshoot
|
||||
/troubleshoot
|
||||
風之翼
|
||||
/prop fly on
|
||||
起飛!
|
||||
/tp ~ ~100 ~
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -130,6 +130,7 @@
|
||||
14501:天空之卷
|
||||
14502:四風原典
|
||||
14504:塵世之鎖
|
||||
14505:碧落之瓏
|
||||
14506:不滅月華
|
||||
14509:神樂之真意
|
||||
14511:千夜浮夢
|
||||
|
@@ -24,7 +24,7 @@ using System.Windows.Forms;
|
||||
|
||||
namespace GrasscutterTools.Utils
|
||||
{
|
||||
public static class AppHotKey
|
||||
internal static class AppHotKey
|
||||
{
|
||||
/// <summary>
|
||||
/// 注册热键
|
||||
|
@@ -1,4 +1,23 @@
|
||||
using System;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.IO;
|
||||
|
||||
using GrasscutterTools.Game;
|
||||
|
@@ -25,7 +25,7 @@ namespace GrasscutterTools.Utils
|
||||
/// <summary>
|
||||
/// <see cref="https://stackoverflow.com/a/17534263"/>
|
||||
/// </summary>
|
||||
public class GuiRedirect
|
||||
internal class GuiRedirect
|
||||
{
|
||||
[DllImport("kernel32.dll", SetLastError = true)]
|
||||
private static extern bool AttachConsole(int dwProcessId);
|
||||
|
@@ -24,7 +24,7 @@ namespace GrasscutterTools.Utils
|
||||
/// <summary>
|
||||
/// 热键项
|
||||
/// </summary>
|
||||
public class HotKeyItem
|
||||
internal class HotKeyItem
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the hot key identifier.
|
||||
|
@@ -27,7 +27,7 @@ using Newtonsoft.Json;
|
||||
|
||||
namespace GrasscutterTools.Utils
|
||||
{
|
||||
public static class HttpHelper
|
||||
internal static class HttpHelper
|
||||
{
|
||||
public static readonly HttpClient HttpClient = new HttpClient
|
||||
{
|
||||
|
@@ -261,7 +261,7 @@ namespace GrasscutterTools.Utils
|
||||
/// <summary>
|
||||
/// 热键触发事件参数
|
||||
/// </summary>
|
||||
public class HotKeyTriggerEventArgs
|
||||
internal class HotKeyTriggerEventArgs
|
||||
{
|
||||
public HotKeyItem HotKeyItem { get; set; }
|
||||
|
||||
|
@@ -23,7 +23,7 @@ using System.Windows.Forms;
|
||||
|
||||
namespace GrasscutterTools.Utils
|
||||
{
|
||||
public static class Logger
|
||||
internal static class Logger
|
||||
{
|
||||
public static bool IsSaveLogs = false;
|
||||
|
||||
|
@@ -1,44 +1,65 @@
|
||||
using System;
|
||||
/**
|
||||
* Grasscutter Tools
|
||||
* Copyright (C) 2023 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.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace GrasscutterTools.Utils
|
||||
{
|
||||
public class SparseSet
|
||||
internal class SparseSet
|
||||
{
|
||||
private struct Range
|
||||
private readonly struct Range
|
||||
{
|
||||
public int Min;
|
||||
public int Max;
|
||||
private readonly int Min;
|
||||
private readonly int Max;
|
||||
|
||||
public Range(int min, int max)
|
||||
{
|
||||
Min = min;
|
||||
Max = max;
|
||||
}
|
||||
|
||||
public bool Check(int value) =>
|
||||
Min <= value && value <= Max;
|
||||
}
|
||||
|
||||
private readonly List<Range> rangeEntries;
|
||||
private readonly HashSet<int> denseEntries;
|
||||
private readonly List<Range> RangeEntries;
|
||||
private readonly HashSet<int> DenseEntries;
|
||||
|
||||
public SparseSet(string csv)
|
||||
{
|
||||
rangeEntries = new List<Range>();
|
||||
denseEntries = new HashSet<int>();
|
||||
RangeEntries = new List<Range>();
|
||||
DenseEntries = new HashSet<int>();
|
||||
foreach (var token in csv.Replace("\n", "").Replace(" ", "").Split(','))
|
||||
{
|
||||
var tokens = token.Split('-');
|
||||
switch (tokens.Length)
|
||||
{
|
||||
case 1:
|
||||
denseEntries.Add(int.Parse(tokens[0]));
|
||||
DenseEntries.Add(int.Parse(tokens[0]));
|
||||
break;
|
||||
|
||||
case 2:
|
||||
rangeEntries.Add(new Range(int.Parse(tokens[0]), int.Parse(tokens[1])));
|
||||
RangeEntries.Add(new Range(int.Parse(tokens[0]), int.Parse(tokens[1])));
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new ArgumentException($"Invalid token passed to SparseSet initializer - {token} (split length {tokens.Length})");
|
||||
}
|
||||
@@ -47,10 +68,7 @@ namespace GrasscutterTools.Utils
|
||||
|
||||
public bool Contains(int i)
|
||||
{
|
||||
foreach (var range in rangeEntries)
|
||||
if (range.Check(i))
|
||||
return true;
|
||||
return denseEntries.Contains(i);
|
||||
return RangeEntries.Any(range => range.Check(i)) || DenseEntries.Contains(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -8,7 +8,7 @@ using GrasscutterTools.Properties;
|
||||
|
||||
namespace GrasscutterTools.Utils
|
||||
{
|
||||
public static class UIUtil
|
||||
internal static class UIUtil
|
||||
{
|
||||
/// <summary>
|
||||
/// 播放按钮完成动画
|
||||
|
Reference in New Issue
Block a user