diff --git a/README.md b/README.md index 601e0c1..544b3cd 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ A desktop app that manage and configures stellaris lobby settings.

wormholes everywhere

## Supported Game Version -- 3.9.0 Open Beta +- 3.9.0 - 3.8.4 - 3.8.3 diff --git a/READMECN.md b/READMECN.md index cb003f6..c0c533d 100644 --- a/READMECN.md +++ b/READMECN.md @@ -26,7 +26,7 @@

到处是虫洞

## 支持版本 -- 3.9.0 公测版 +- 3.9.0 - 3.8.4 - 3.8.3 diff --git a/Stellaris-Lobby-Manager/App.config b/Stellaris-Lobby-Manager/App.config index 3ecea38..009ec91 100644 --- a/Stellaris-Lobby-Manager/App.config +++ b/Stellaris-Lobby-Manager/App.config @@ -17,16 +17,16 @@ False - 41362280 + 41335544 - 2248 + 2304 True - 42535000 + 42508600 24 @@ -44,11 +44,14 @@ 16 - 1515366 + 1514601 True + + 194 + \ No newline at end of file diff --git a/Stellaris-Lobby-Manager/LobbyManager.cs b/Stellaris-Lobby-Manager/LobbyManager.cs index ea37ac8..d1aef29 100644 --- a/Stellaris-Lobby-Manager/LobbyManager.cs +++ b/Stellaris-Lobby-Manager/LobbyManager.cs @@ -539,12 +539,16 @@ private void _ToggleOverflow(bool canOverflow) { overflowRestore = MemoryHelper.ReadUnmanaged(stellarisProcess, gameBase + Properties.Settings.Default.overflowOffset, 5); - // in case program is closed before overflow is restored - if (overflowRestore.SequenceEqual(new byte[] { 0x90, 0x90, 0x90, 0x90, 0x90 })) + // it must be a jump instruction + if (overflowRestore[0] == 0xE8) { - overflowRestore = new byte[] { 0xE8, 0xC5, 0x00, 0x00, 0x00 }; + // in case program is closed before overflow is restored + if (overflowRestore.SequenceEqual(new byte[] { 0x90, 0x90, 0x90, 0x90, 0x90 })) + { + overflowRestore = new byte[] { 0xE8, (byte)Properties.Settings.Default.overflowJump, 0x00, 0x00, 0x00 }; + } + MemoryHelper.WriteUnmanaged(stellarisProcess, gameBase + Properties.Settings.Default.overflowOffset, new byte[] { 0x90, 0x90, 0x90, 0x90, 0x90 }); } - MemoryHelper.WriteUnmanaged(stellarisProcess, gameBase + Properties.Settings.Default.overflowOffset, new byte[] { 0x90, 0x90, 0x90, 0x90, 0x90 }); } else if (overflowRestore != null) { diff --git a/Stellaris-Lobby-Manager/OffsetSetter.Designer.cs b/Stellaris-Lobby-Manager/OffsetSetter.Designer.cs index cef0e9c..bdee753 100644 --- a/Stellaris-Lobby-Manager/OffsetSetter.Designer.cs +++ b/Stellaris-Lobby-Manager/OffsetSetter.Designer.cs @@ -29,13 +29,6 @@ protected override void Dispose(bool disposing) private void InitializeComponent() { offsetPanel = new TableLayoutPanel(); - lobbyOffset1 = new NumericUpDown(); - lobbyOffset2 = new NumericUpDown(); - sizeOffset1 = new NumericUpDown(); - sizeOffset2 = new NumericUpDown(); - sizeCountOffset = new NumericUpDown(); - sizeStringOffset = new NumericUpDown(); - shapeOffset = new NumericUpDown(); overflowOffsetDesc = new Label(); shapeStringOffsetDesc = new Label(); shapeOffsetDesc = new Label(); @@ -47,18 +40,25 @@ private void InitializeComponent() lobbyOffset1Desc = new Label(); overflowOffset = new NumericUpDown(); shapeStringOffset = new NumericUpDown(); + shapeOffset = new NumericUpDown(); + sizeStringOffset = new NumericUpDown(); + sizeCountOffset = new NumericUpDown(); + sizeOffset2 = new NumericUpDown(); + sizeOffset1 = new NumericUpDown(); + lobbyOffset2 = new NumericUpDown(); + lobbyOffset1 = new NumericUpDown(); panel1 = new Panel(); OffsetWarn = new Label(); offsetPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)lobbyOffset1).BeginInit(); - ((System.ComponentModel.ISupportInitialize)lobbyOffset2).BeginInit(); - ((System.ComponentModel.ISupportInitialize)sizeOffset1).BeginInit(); - ((System.ComponentModel.ISupportInitialize)sizeOffset2).BeginInit(); - ((System.ComponentModel.ISupportInitialize)sizeCountOffset).BeginInit(); - ((System.ComponentModel.ISupportInitialize)sizeStringOffset).BeginInit(); - ((System.ComponentModel.ISupportInitialize)shapeOffset).BeginInit(); ((System.ComponentModel.ISupportInitialize)overflowOffset).BeginInit(); ((System.ComponentModel.ISupportInitialize)shapeStringOffset).BeginInit(); + ((System.ComponentModel.ISupportInitialize)shapeOffset).BeginInit(); + ((System.ComponentModel.ISupportInitialize)sizeStringOffset).BeginInit(); + ((System.ComponentModel.ISupportInitialize)sizeCountOffset).BeginInit(); + ((System.ComponentModel.ISupportInitialize)sizeOffset2).BeginInit(); + ((System.ComponentModel.ISupportInitialize)sizeOffset1).BeginInit(); + ((System.ComponentModel.ISupportInitialize)lobbyOffset2).BeginInit(); + ((System.ComponentModel.ISupportInitialize)lobbyOffset1).BeginInit(); panel1.SuspendLayout(); SuspendLayout(); // @@ -103,90 +103,6 @@ private void InitializeComponent() offsetPanel.Size = new Size(253, 314); offsetPanel.TabIndex = 0; // - // lobbyOffset1 - // - lobbyOffset1.Anchor = AnchorStyles.Left | AnchorStyles.Right; - lobbyOffset1.Increment = new decimal(new int[] { 4, 0, 0, 0 }); - lobbyOffset1.Location = new Point(129, 42); - lobbyOffset1.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); - lobbyOffset1.Name = "lobbyOffset1"; - lobbyOffset1.Size = new Size(111, 23); - lobbyOffset1.TabIndex = 1; - lobbyOffset1.Tag = 0; - lobbyOffset1.ValueChanged += OnOffsetEdit; - // - // lobbyOffset2 - // - lobbyOffset2.Anchor = AnchorStyles.Left | AnchorStyles.Right; - lobbyOffset2.Increment = new decimal(new int[] { 4, 0, 0, 0 }); - lobbyOffset2.Location = new Point(129, 71); - lobbyOffset2.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); - lobbyOffset2.Name = "lobbyOffset2"; - lobbyOffset2.Size = new Size(111, 23); - lobbyOffset2.TabIndex = 1; - lobbyOffset2.Tag = 0; - lobbyOffset2.ValueChanged += OnOffsetEdit; - // - // sizeOffset1 - // - sizeOffset1.Anchor = AnchorStyles.Left | AnchorStyles.Right; - sizeOffset1.Increment = new decimal(new int[] { 4, 0, 0, 0 }); - sizeOffset1.Location = new Point(129, 100); - sizeOffset1.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); - sizeOffset1.Name = "sizeOffset1"; - sizeOffset1.Size = new Size(111, 23); - sizeOffset1.TabIndex = 1; - sizeOffset1.Tag = 0; - sizeOffset1.ValueChanged += OnOffsetEdit; - // - // sizeOffset2 - // - sizeOffset2.Anchor = AnchorStyles.Left | AnchorStyles.Right; - sizeOffset2.Increment = new decimal(new int[] { 4, 0, 0, 0 }); - sizeOffset2.Location = new Point(129, 129); - sizeOffset2.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); - sizeOffset2.Name = "sizeOffset2"; - sizeOffset2.Size = new Size(111, 23); - sizeOffset2.TabIndex = 1; - sizeOffset2.Tag = 0; - sizeOffset2.ValueChanged += OnOffsetEdit; - // - // sizeCountOffset - // - sizeCountOffset.Anchor = AnchorStyles.Left | AnchorStyles.Right; - sizeCountOffset.Increment = new decimal(new int[] { 4, 0, 0, 0 }); - sizeCountOffset.Location = new Point(129, 158); - sizeCountOffset.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); - sizeCountOffset.Name = "sizeCountOffset"; - sizeCountOffset.Size = new Size(111, 23); - sizeCountOffset.TabIndex = 1; - sizeCountOffset.Tag = 0; - sizeCountOffset.ValueChanged += OnOffsetEdit; - // - // sizeStringOffset - // - sizeStringOffset.Anchor = AnchorStyles.Left | AnchorStyles.Right; - sizeStringOffset.Increment = new decimal(new int[] { 4, 0, 0, 0 }); - sizeStringOffset.Location = new Point(129, 187); - sizeStringOffset.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); - sizeStringOffset.Name = "sizeStringOffset"; - sizeStringOffset.Size = new Size(111, 23); - sizeStringOffset.TabIndex = 1; - sizeStringOffset.Tag = 0; - sizeStringOffset.ValueChanged += OnOffsetEdit; - // - // shapeOffset - // - shapeOffset.Anchor = AnchorStyles.Left | AnchorStyles.Right; - shapeOffset.Increment = new decimal(new int[] { 4, 0, 0, 0 }); - shapeOffset.Location = new Point(129, 216); - shapeOffset.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); - shapeOffset.Name = "shapeOffset"; - shapeOffset.Size = new Size(111, 23); - shapeOffset.TabIndex = 1; - shapeOffset.Tag = 0; - shapeOffset.ValueChanged += OnOffsetEdit; - // // overflowOffsetDesc // overflowOffsetDesc.Anchor = AnchorStyles.Left | AnchorStyles.Right; @@ -301,6 +217,90 @@ private void InitializeComponent() shapeStringOffset.Tag = 0; shapeStringOffset.ValueChanged += OnOffsetEdit; // + // shapeOffset + // + shapeOffset.Anchor = AnchorStyles.Left | AnchorStyles.Right; + shapeOffset.Increment = new decimal(new int[] { 4, 0, 0, 0 }); + shapeOffset.Location = new Point(129, 216); + shapeOffset.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); + shapeOffset.Name = "shapeOffset"; + shapeOffset.Size = new Size(111, 23); + shapeOffset.TabIndex = 1; + shapeOffset.Tag = 0; + shapeOffset.ValueChanged += OnOffsetEdit; + // + // sizeStringOffset + // + sizeStringOffset.Anchor = AnchorStyles.Left | AnchorStyles.Right; + sizeStringOffset.Increment = new decimal(new int[] { 4, 0, 0, 0 }); + sizeStringOffset.Location = new Point(129, 187); + sizeStringOffset.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); + sizeStringOffset.Name = "sizeStringOffset"; + sizeStringOffset.Size = new Size(111, 23); + sizeStringOffset.TabIndex = 1; + sizeStringOffset.Tag = 0; + sizeStringOffset.ValueChanged += OnOffsetEdit; + // + // sizeCountOffset + // + sizeCountOffset.Anchor = AnchorStyles.Left | AnchorStyles.Right; + sizeCountOffset.Increment = new decimal(new int[] { 4, 0, 0, 0 }); + sizeCountOffset.Location = new Point(129, 158); + sizeCountOffset.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); + sizeCountOffset.Name = "sizeCountOffset"; + sizeCountOffset.Size = new Size(111, 23); + sizeCountOffset.TabIndex = 1; + sizeCountOffset.Tag = 0; + sizeCountOffset.ValueChanged += OnOffsetEdit; + // + // sizeOffset2 + // + sizeOffset2.Anchor = AnchorStyles.Left | AnchorStyles.Right; + sizeOffset2.Increment = new decimal(new int[] { 4, 0, 0, 0 }); + sizeOffset2.Location = new Point(129, 129); + sizeOffset2.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); + sizeOffset2.Name = "sizeOffset2"; + sizeOffset2.Size = new Size(111, 23); + sizeOffset2.TabIndex = 1; + sizeOffset2.Tag = 0; + sizeOffset2.ValueChanged += OnOffsetEdit; + // + // sizeOffset1 + // + sizeOffset1.Anchor = AnchorStyles.Left | AnchorStyles.Right; + sizeOffset1.Increment = new decimal(new int[] { 4, 0, 0, 0 }); + sizeOffset1.Location = new Point(129, 100); + sizeOffset1.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); + sizeOffset1.Name = "sizeOffset1"; + sizeOffset1.Size = new Size(111, 23); + sizeOffset1.TabIndex = 1; + sizeOffset1.Tag = 0; + sizeOffset1.ValueChanged += OnOffsetEdit; + // + // lobbyOffset2 + // + lobbyOffset2.Anchor = AnchorStyles.Left | AnchorStyles.Right; + lobbyOffset2.Increment = new decimal(new int[] { 4, 0, 0, 0 }); + lobbyOffset2.Location = new Point(129, 71); + lobbyOffset2.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); + lobbyOffset2.Name = "lobbyOffset2"; + lobbyOffset2.Size = new Size(111, 23); + lobbyOffset2.TabIndex = 1; + lobbyOffset2.Tag = 0; + lobbyOffset2.ValueChanged += OnOffsetEdit; + // + // lobbyOffset1 + // + lobbyOffset1.Anchor = AnchorStyles.Left | AnchorStyles.Right; + lobbyOffset1.Increment = new decimal(new int[] { 4, 0, 0, 0 }); + lobbyOffset1.Location = new Point(129, 42); + lobbyOffset1.Maximum = new decimal(new int[] { int.MaxValue, 0, 0, 0 }); + lobbyOffset1.Name = "lobbyOffset1"; + lobbyOffset1.Size = new Size(111, 23); + lobbyOffset1.TabIndex = 1; + lobbyOffset1.Tag = 0; + lobbyOffset1.ValueChanged += OnOffsetEdit; + // // panel1 // panel1.Controls.Add(OffsetWarn); @@ -331,15 +331,15 @@ private void InitializeComponent() Text = "Offset Setter"; offsetPanel.ResumeLayout(false); offsetPanel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)lobbyOffset1).EndInit(); - ((System.ComponentModel.ISupportInitialize)lobbyOffset2).EndInit(); - ((System.ComponentModel.ISupportInitialize)sizeOffset1).EndInit(); - ((System.ComponentModel.ISupportInitialize)sizeOffset2).EndInit(); - ((System.ComponentModel.ISupportInitialize)sizeCountOffset).EndInit(); - ((System.ComponentModel.ISupportInitialize)sizeStringOffset).EndInit(); - ((System.ComponentModel.ISupportInitialize)shapeOffset).EndInit(); ((System.ComponentModel.ISupportInitialize)overflowOffset).EndInit(); ((System.ComponentModel.ISupportInitialize)shapeStringOffset).EndInit(); + ((System.ComponentModel.ISupportInitialize)shapeOffset).EndInit(); + ((System.ComponentModel.ISupportInitialize)sizeStringOffset).EndInit(); + ((System.ComponentModel.ISupportInitialize)sizeCountOffset).EndInit(); + ((System.ComponentModel.ISupportInitialize)sizeOffset2).EndInit(); + ((System.ComponentModel.ISupportInitialize)sizeOffset1).EndInit(); + ((System.ComponentModel.ISupportInitialize)lobbyOffset2).EndInit(); + ((System.ComponentModel.ISupportInitialize)lobbyOffset1).EndInit(); panel1.ResumeLayout(false); ResumeLayout(false); } diff --git a/Stellaris-Lobby-Manager/OffsetSetter.resx b/Stellaris-Lobby-Manager/OffsetSetter.resx index a395bff..af32865 100644 --- a/Stellaris-Lobby-Manager/OffsetSetter.resx +++ b/Stellaris-Lobby-Manager/OffsetSetter.resx @@ -18,7 +18,7 @@ System.Resources.ResXResourceReader, System.Windows.Forms, ... System.Resources.ResXResourceWriter, System.Windows.Forms, ... this is my long stringthis is a comment - Blue + Blue [base64 mime encoded serialized .NET Framework object] diff --git a/Stellaris-Lobby-Manager/Properties/Settings.Designer.cs b/Stellaris-Lobby-Manager/Properties/Settings.Designer.cs index aadeedc..16bb26d 100644 --- a/Stellaris-Lobby-Manager/Properties/Settings.Designer.cs +++ b/Stellaris-Lobby-Manager/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace Stellaris_Lobby_Manager.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.6.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -61,7 +61,7 @@ public bool overWriteWarning { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("41362280")] + [global::System.Configuration.DefaultSettingValueAttribute("41335544")] public int lobbyOffset1 { get { return ((int)(this["lobbyOffset1"])); @@ -73,7 +73,7 @@ public int lobbyOffset1 { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("2248")] + [global::System.Configuration.DefaultSettingValueAttribute("2304")] public int lobbyOffset2 { get { return ((int)(this["lobbyOffset2"])); @@ -97,7 +97,7 @@ public bool fullPrecision { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("42535000")] + [global::System.Configuration.DefaultSettingValueAttribute("42508600")] public int sizeOffset1 { get { return ((int)(this["sizeOffset1"])); @@ -169,7 +169,7 @@ public int shapeStringOffset { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("1515366")] + [global::System.Configuration.DefaultSettingValueAttribute("1514601")] public int overflowOffset { get { return ((int)(this["overflowOffset"])); @@ -190,5 +190,17 @@ public bool canOverflow { this["canOverflow"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("194")] + public int overflowJump { + get { + return ((int)(this["overflowJump"])); + } + set { + this["overflowJump"] = value; + } + } } } diff --git a/Stellaris-Lobby-Manager/Properties/Settings.settings b/Stellaris-Lobby-Manager/Properties/Settings.settings index 37424c0..6a55646 100644 --- a/Stellaris-Lobby-Manager/Properties/Settings.settings +++ b/Stellaris-Lobby-Manager/Properties/Settings.settings @@ -12,16 +12,16 @@ False - 41362280 + 41335544 - 2248 + 2304 True - 42535000 + 42508600 24 @@ -39,10 +39,13 @@ 16 - 1515366 + 1514601 True + + 194 + \ No newline at end of file diff --git a/Stellaris-Lobby-Manager/offsets.json b/Stellaris-Lobby-Manager/offsets.json index 508ffd8..4f43dd9 100644 --- a/Stellaris-Lobby-Manager/offsets.json +++ b/Stellaris-Lobby-Manager/offsets.json @@ -1,17 +1,23 @@ { "1692794684": { "lobbyOffset1": 41331224, + "lobbyOffset2": 2248, "sizeOffset1": 42504280, - "overflowOffset": 1518374 + "overflowOffset": 1518374, + "overflowJump": 197 }, "1686556435": { "lobbyOffset1": 41362280, + "lobbyOffset2": 2248, "sizeOffset1": 42535000, - "overflowOffset": 1515366 + "overflowOffset": 1515366, + "overflowJump": 197 }, - "1685184866": { - "lobbyOffset1": 41356808, - "sizeOffset1": 42529496, - "overflowOffset": 1513206 + "1693905983": { + "lobbyOffset1": 41335544, + "lobbyOffset2": 2304, + "sizeOffset1": 42508600, + "overflowOffset": 1514601, + "overflowJump": 194 } } \ No newline at end of file