返回提交历史
Modified
SeaOfRadiationEditor.sln
+14
-1
Deleted
SeaOfRadiationEditor/Form1.Designer.cs
+0
-39
Deleted
SeaOfRadiationEditor/Form1.cs
+0
-10
Added
SeaOfRadiationEditor/MainForm.Designer.cs
+166
-0
Added
SeaOfRadiationEditor/MainForm.cs
+121
-0
Added
SeaOfRadiationEditor/MainForm.resx
+145
-0
Modified
SeaOfRadiationEditor/Program.cs
+36
-13
Added
SeaOfRadiationEditor/Properties/Resources.Designer.cs
+73
-0
Renamed
SeaOfRadiationEditor/Properties/Resources.resx
+4
-0
Added
SeaOfRadiationEditor/Resources/background.png
+0
-0
Modified
SeaOfRadiationEditor/SeaOfRadiationEditor.csproj
+19
-0
Added
SeaOfRadiationEditor/SystemProfile.cs
+59
-0
Added
background.png
+0
-0
Added
icon.ico
+0
-0
XFEstudio/SeaOfRadiationEditor
更新引用,完善修改器
3ea7d4e
代码差异
14 个文件
+637
-63
@@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
2
2
# Visual Studio Version 17
3
3
VisualStudioVersion = 17.10.34814.14
4
4
MinimumVisualStudioVersion = 10.0.40219.1
5
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SeaOfRadiationEditor", "SeaOfRadiationEditor\SeaOfRadiationEditor.csproj", "{49E255F9-BBA4-40F1-BAEE-8895377CFD02}"
5
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SeaOfRadiationEditor", "SeaOfRadiationEditor\SeaOfRadiationEditor.csproj", "{49E255F9-BBA4-40F1-BAEE-8895377CFD02}"
6
6
EndProject
7
7
Global
8
8
GlobalSection(ExtensibilityGlobals) = postSolution
@@ -22,3 +22,16 @@ Global
22
22
HideSolutionNode = FALSE
23
23
EndGlobalSection
24
24
EndGlobal
25
C-B6F7-7518F9082DD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
26
{5AADED35-3C2B-432C-B6F7-7518F9082DD4}.Debug|Any CPU.Build.0 = Debug|Any CPU
27
{5AADED35-3C2B-432C-B6F7-7518F9082DD4}.Release|Any CPU.ActiveCfg = Release|Any CPU
28
{5AADED35-3C2B-432C-B6F7-7518F9082DD4}.Release|Any CPU.Build.0 = Release|Any CPU
29
EndGlobalSection
30
GlobalSection(SolutionConfigurationPlatforms) = preSolution
31
Debug|Any CPU = Debug|Any CPU
32
Release|Any CPU = Release|Any CPU
33
EndGlobalSection
34
GlobalSection(SolutionProperties) = preSolution
35
HideSolutionNode = FALSE
36
EndGlobalSection
37
EndGlobal
@@ -1,39 +0,0 @@
1
namespace SeaOfRadiationEditor
2
{
3
partial class Form1
4
{
5
/// <summary>
6
/// Required designer variable.
7
/// </summary>
8
private System.ComponentModel.IContainer components = null;
9
10
/// <summary>
11
/// Clean up any resources being used.
12
/// </summary>
13
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14
protected override void Dispose(bool disposing)
15
{
16
if (disposing && (components != null))
17
{
18
components.Dispose();
19
}
20
base.Dispose(disposing);
21
}
22
23
#region Windows Form Designer generated code
24
25
/// <summary>
26
/// Required method for Designer support - do not modify
27
/// the contents of this method with the code editor.
28
/// </summary>
29
private void InitializeComponent()
30
{
31
this.components = new System.ComponentModel.Container();
32
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
33
this.ClientSize = new System.Drawing.Size(800, 450);
34
this.Text = "Form1";
35
}
36
37
#endregion
38
}
39
}
@@ -1,10 +0,0 @@
1
namespace SeaOfRadiationEditor
2
{
3
public partial class Form1 : Form
4
{
5
public Form1()
6
{
7
InitializeComponent();
8
}
9
}
10
}
@@ -0,0 +1,166 @@
1
namespace SeaOfRadiationEditor
2
{
3
partial class MainForm
4
{
5
/// <summary>
6
/// Required designer variable.
7
/// </summary>
8
private System.ComponentModel.IContainer components = null;
9
10
/// <summary>
11
/// Clean up any resources being used.
12
/// </summary>
13
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14
protected override void Dispose(bool disposing)
15
{
16
if (disposing && (components != null))
17
{
18
components.Dispose();
19
}
20
base.Dispose(disposing);
21
}
22
23
#region Windows Form Designer generated code
24
25
/// <summary>
26
/// Required method for Designer support - do not modify
27
/// the contents of this method with the code editor.
28
/// </summary>
29
private void InitializeComponent()
30
{
31
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
32
textBox1 = new TextBox();
33
label1 = new Label();
34
label2 = new Label();
35
checkBox1 = new CheckBox();
36
textBox2 = new TextBox();
37
checkBox2 = new CheckBox();
38
textBox3 = new TextBox();
39
checkBox3 = new CheckBox();
40
SuspendLayout();
41
//
42
// textBox1
43
//
44
textBox1.BackColor = Color.FromArgb(64, 64, 64);
45
textBox1.ForeColor = Color.White;
46
textBox1.Location = new Point(312, 105);
47
textBox1.Name = "textBox1";
48
textBox1.Size = new Size(227, 30);
49
textBox1.TabIndex = 0;
50
textBox1.Text = "99";
51
//
52
// label1
53
//
54
label1.AutoSize = true;
55
label1.Font = new Font("Microsoft YaHei UI", 12F);
56
label1.ForeColor = Color.White;
57
label1.Location = new Point(205, 487);
58
label1.Name = "label1";
59
label1.Size = new Size(250, 31);
60
label1.TabIndex = 4;
61
label1.Text = "by bilibili UP:XFE菜狗";
62
//
63
// label2
64
//
65
label2.AutoSize = true;
66
label2.ForeColor = Color.White;
67
label2.Location = new Point(152, 560);
68
label2.Name = "label2";
69
label2.Size = new Size(370, 24);
70
label2.TabIndex = 5;
71
label2.Text = "声明:本修改器完全免费,如遇收费均为盗版";
72
//
73
// checkBox1
74
//
75
checkBox1.AutoSize = true;
76
checkBox1.Font = new Font("Microsoft YaHei UI", 12F);
77
checkBox1.ForeColor = Color.White;
78
checkBox1.Location = new Point(130, 105);
79
checkBox1.Name = "checkBox1";
80
checkBox1.Size = new Size(136, 35);
81
checkBox1.TabIndex = 10;
82
checkBox1.Text = "重置次数";
83
checkBox1.UseVisualStyleBackColor = true;
84
checkBox1.CheckedChanged += CheckBox1_CheckedChanged;
85
//
86
// textBox2
87
//
88
textBox2.BackColor = Color.FromArgb(64, 64, 64);
89
textBox2.ForeColor = Color.White;
90
textBox2.Location = new Point(312, 185);
91
textBox2.Name = "textBox2";
92
textBox2.Size = new Size(227, 30);
93
textBox2.TabIndex = 11;
94
textBox2.Text = "600";
95
//
96
// checkBox2
97
//
98
checkBox2.AutoSize = true;
99
checkBox2.Font = new Font("Microsoft YaHei UI", 12F);
100
checkBox2.ForeColor = Color.White;
101
checkBox2.Location = new Point(130, 181);
102
checkBox2.Name = "checkBox2";
103
checkBox2.Size = new Size(112, 35);
104
checkBox2.TabIndex = 12;
105
checkBox2.Text = "倒计时";
106
checkBox2.UseVisualStyleBackColor = true;
107
checkBox2.CheckedChanged += CheckBox2_CheckedChanged;
108
//
109
// textBox3
110
//
111
textBox3.BackColor = Color.FromArgb(64, 64, 64);
112
textBox3.ForeColor = Color.White;
113
textBox3.Location = new Point(312, 273);
114
textBox3.Name = "textBox3";
115
textBox3.Size = new Size(227, 30);
116
textBox3.TabIndex = 13;
117
textBox3.Text = "99";
118
//
119
// checkBox3
120
//
121
checkBox3.AutoSize = true;
122
checkBox3.Font = new Font("Microsoft YaHei UI", 12F);
123
checkBox3.ForeColor = Color.White;
124
checkBox3.Location = new Point(130, 269);
125
checkBox3.Name = "checkBox3";
126
checkBox3.Size = new Size(88, 35);
127
checkBox3.TabIndex = 14;
128
checkBox3.Text = "体力";
129
checkBox3.UseVisualStyleBackColor = true;
130
checkBox3.CheckedChanged += CheckBox3_CheckedChanged;
131
//
132
// MainForm
133
//
134
AutoScaleDimensions = new SizeF(11F, 24F);
135
AutoScaleMode = AutoScaleMode.Font;
136
BackColor = Color.FromArgb(64, 64, 64);
137
BackgroundImage = Properties.Resources.background;
138
ClientSize = new Size(629, 623);
139
Controls.Add(checkBox3);
140
Controls.Add(textBox3);
141
Controls.Add(checkBox2);
142
Controls.Add(textBox2);
143
Controls.Add(checkBox1);
144
Controls.Add(label2);
145
Controls.Add(label1);
146
Controls.Add(textBox1);
147
DoubleBuffered = true;
148
FormBorderStyle = FormBorderStyle.FixedToolWindow;
149
Icon = (Icon)resources.GetObject("$this.Icon");
150
Name = "MainForm";
151
Text = "辐射之海:序章 3项修改器[未启动游戏]";
152
ResumeLayout(false);
153
PerformLayout();
154
}
155
156
#endregion
157
private Label label1;
158
private Label label2;
159
internal CheckBox checkBox1;
160
internal CheckBox checkBox2;
161
internal CheckBox checkBox3;
162
internal TextBox textBox1;
163
internal TextBox textBox2;
164
internal TextBox textBox3;
165
}
166
}
@@ -0,0 +1,121 @@
1
using System.Diagnostics;
2
using XFEExtension.NetCore.MemoryEditor;
3
4
namespace SeaOfRadiationEditor;
5
6
public partial class MainForm : Form
7
{
8
public static MainForm? Current { get; set; }
9
public MainForm()
10
{
11
InitializeComponent();
12
Current = this;
13
Program.Manager.ValueChanged += Manager_ValueChanged;
14
}
15
16
private void Manager_ValueChanged(XFEExtension.NetCore.MemoryEditor.Manager.MemoryItem sender, MemoryValue e)
17
{
18
Trace.WriteLine($"���ƣ�{e.CustomName} ��ַ��{sender:X}\t�Ƿ��ȡ��ֵ �ϴΣ�{e.PreviousValueGetSuccessful} ��Σ�{e.CurrentValueGetSuccessful} ֵ�ӣ�{e.PreviousValue} ���Ϊ��{e.CurrentValue}");
19
switch (e.CustomName)
20
{
21
case "Reset":
22
if (e.CurrentValueGetSuccessful && SystemProfile.ResetFuncStart)
23
{
24
if (!sender.Write(int.Parse(textBox1.Text)))
25
Trace.WriteLine($"Resetд��ʧ��");
26
}
27
break;
28
case "TimeCounter":
29
if (e.CurrentValueGetSuccessful && SystemProfile.TimeCounterFuncStart)
30
{
31
if (!sender.Write(float.Parse(textBox2.Text)))
32
Trace.WriteLine("TimeCounterд��ʧ��");
33
}
34
break;
35
case "Stamina":
36
if (e.CurrentValueGetSuccessful && SystemProfile.StaminaFuncStart)
37
{
38
if (!sender.Write(float.Parse(textBox3.Text)))
39
Trace.WriteLine("Staminaд��ʧ��");
40
}
41
break;
42
default:
43
break;
44
}
45
}
46
47
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
48
{
49
if (sender is CheckBox checkBox)
50
{
51
if (checkBox.Checked)
52
{
53
if (CheckGameStart(checkBox))
54
{
55
SystemProfile.ResetFuncStart = true;
56
Program.Manager["Reset"].Write(int.Parse(textBox1.Text));
57
}
58
}
59
else
60
{
61
SystemProfile.ResetFuncStart = false;
62
}
63
}
64
}
65
66
private void CheckBox2_CheckedChanged(object sender, EventArgs e)
67
{
68
if (sender is CheckBox checkBox)
69
{
70
if (checkBox.Checked)
71
{
72
if (CheckGameStart(checkBox))
73
{
74
SystemProfile.TimeCounterFuncStart = true;
75
Program.Manager["TimeCounter"].Write(float.Parse(textBox2.Text));
76
}
77
}
78
else
79
{
80
SystemProfile.TimeCounterFuncStart = false;
81
}
82
}
83
}
84
85
private void CheckBox3_CheckedChanged(object sender, EventArgs e)
86
{
87
if (sender is CheckBox checkBox)
88
{
89
if (checkBox.Checked)
90
{
91
if (CheckGameStart(checkBox))
92
{
93
SystemProfile.StaminaFuncStart = true;
94
Program.Manager["Stamina"].Write(float.Parse(textBox3.Text));
95
}
96
}
97
else
98
{
99
SystemProfile.StaminaFuncStart = false;
100
}
101
}
102
}
103
104
private static bool CheckGameStart(CheckBox checkBox)
105
{
106
if (!SystemProfile.IsGameRunning)
107
{
108
MessageBox.Show("��������Ϸ");
109
RemoveAllCheck();
110
return false;
111
}
112
return true;
113
}
114
115
public static void RemoveAllCheck()
116
{
117
SystemProfile.ResetFuncStart = false;
118
SystemProfile.TimeCounterFuncStart = false;
119
SystemProfile.StaminaFuncStart = false;
120
}
121
}
@@ -0,0 +1,145 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<root>
3
<!--
4
Microsoft ResX Schema
5
6
Version 2.0
7
8
The primary goals of this format is to allow a simple XML format
9
that is mostly human readable. The generation and parsing of the
10
various data types are done through the TypeConverter classes
11
associated with the data types.
12
13
Example:
14
15
... ado.net/XML headers & schema ...
16
<resheader name="resmimetype">text/microsoft-resx</resheader>
17
<resheader name="version">2.0</resheader>
18
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23
<value>[base64 mime encoded serialized .NET Framework object]</value>
24
</data>
25
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27
<comment>This is a comment</comment>
28
</data>
29
30
There are any number of "resheader" rows that contain simple
31
name/value pairs.
32
33
Each data row contains a name, and value. The row also contains a
34
type or mimetype. Type corresponds to a .NET class that support
35
text/value conversion through the TypeConverter architecture.
36
Classes that don't support this are serialized and stored with the
37
mimetype set.
38
39
The mimetype is used for serialized objects, and tells the
40
ResXResourceReader how to depersist the object. This is currently not
41
extensible. For a given mimetype the value must be set accordingly:
42
43
Note - application/x-microsoft.net.object.binary.base64 is the format
44
that the ResXResourceWriter will generate, however the reader can
45
read any of the formats listed below.
46
47
mimetype: application/x-microsoft.net.object.binary.base64
48
value : The object must be serialized with
49
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50
: and then encoded with base64 encoding.
51
52
mimetype: application/x-microsoft.net.object.soap.base64
53
value : The object must be serialized with
54
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55
: and then encoded with base64 encoding.
56
57
mimetype: application/x-microsoft.net.object.bytearray.base64
58
value : The object must be serialized into a byte array
59
: using a System.ComponentModel.TypeConverter
60
: and then encoded with base64 encoding.
61
-->
62
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64
<xsd:element name="root" msdata:IsDataSet="true">
65
<xsd:complexType>
66
<xsd:choice maxOccurs="unbounded">
67
<xsd:element name="metadata">
68
<xsd:complexType>
69
<xsd:sequence>
70
<xsd:element name="value" type="xsd:string" minOccurs="0" />
71
</xsd:sequence>
72
<xsd:attribute name="name" use="required" type="xsd:string" />
73
<xsd:attribute name="type" type="xsd:string" />
74
<xsd:attribute name="mimetype" type="xsd:string" />
75
<xsd:attribute ref="xml:space" />
76
</xsd:complexType>
77
</xsd:element>
78
<xsd:element name="assembly">
79
<xsd:complexType>
80
<xsd:attribute name="alias" type="xsd:string" />
81
<xsd:attribute name="name" type="xsd:string" />
82
</xsd:complexType>
83
</xsd:element>
84
<xsd:element name="data">
85
<xsd:complexType>
86
<xsd:sequence>
87
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89
</xsd:sequence>
90
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93
<xsd:attribute ref="xml:space" />
94
</xsd:complexType>
95
</xsd:element>
96
<xsd:element name="resheader">
97
<xsd:complexType>
98
<xsd:sequence>
99
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100
</xsd:sequence>
101
<xsd:attribute name="name" type="xsd:string" use="required" />
102
</xsd:complexType>
103
</xsd:element>
104
</xsd:choice>
105
</xsd:complexType>
106
</xsd:element>
107
</xsd:schema>
108
<resheader name="resmimetype">
109
<value>text/microsoft-resx</value>
110
</resheader>
111
<resheader name="version">
112
<value>2.0</value>
113
</resheader>
114
<resheader name="reader">
115
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116
</resheader>
117
<resheader name="writer">
118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
</resheader>
120
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122
<value>
123
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAMQOAADEDgAAAAAAAAAA
124
AABjayH/XlcA/3h3A/9MTQP/XlcS/5aZEf+FgAP/m58f/46QBf+MjxL/goAA/4OCB/+CggX/e3kA/316
125
BP9pZQT/orNx/8Hku//I6sD/v+K2/7DIj/+jtnf/YmQf/19cDf9naRD/XV8U/4iRRv+31KX/yPPM/8Xl
126
sf+82qv/pLh0/0xDBP+FjEP/lKJh/0ZEEv94eiX/REgX/yUnDf9ycSP/cXMo/yEjDv85OQj/nq5n/zYx
127
Bv+Jjjj/gIM1/1hhM/9PRwf/fH0h/0hFD/8nIwv/NzcV/y8yD/8xLgz/CAcW/wMDF/89PRD/Ly8K/xUT
128
D/8tJwv/VFEN/4uPPf9wcSj/iYge/0pJC/8eGwz/GRoT/ycoEv8tKAn/MjAM/wQEFv8DAxj/HRoO/z07
129
Cv8ODBL/GhcO/yUgDf9YVhD/g4Ml/3t5Ff8fGwv/ERAS/4WNS/9WVyL/JR8L/yQgDv89PR7/RUgl/zc0
130
D/8wKwj/iZda/3J7S/8XEg7/JyEH/4eJHf9GRhD/ZGIV/29qDP+Ml0n/d34u/0tIDP8hO1j/W1ws/2xv
131
NP8cKjr/Y14V/46TRP+fq1z/cm0K/1hXIv8/PhH/RDoA/1lTC/95dyf/dn8y/521hv9nayj/dnUe/3t9
132
Lf+LkEf/bG0a/4KJQP+RkzD/dHIa/2NeEf9LQgL/SUMP/0M4CP9gXBn/ZmAa/4WUZP+aoEH/lKdk/1tT
133
Df9jYxb/goM1/15aD/+dr23/l5s5/3l0Hv9NQwT/SD8B/05HA/80KwT/OjAB/1FJDf93din/c24b/6Cx
134
Zf+itnT/m51D/4B6Hv+yyZX/oLFu/3+FOf9UTQX/TUUQ/1lUHv84LwL/KyMH/y4mBv85MQT/YVwa/1hR
135
C/+PnWX/rsSH/5ihUP+rvX7/qr15/5SiU/+cpFz/UUkI/zw1Bf8xKQP/MScG/ykgCf8uJgf/PTUF/01E
136
CP9YUQ//fXYV/5+oWP/K4q3/zem3/6KsWf9rZQr/bmgX/1ZOC/9IPwb/MSkF/ykgCv83LwX/ODIF/0A4
137
BP9aUgb/ZV4O/4qJOf+YnUH/yuu6/9Hzxf+kqFj/dG8Q/25pEv9ZTwj/TkYE/zwzA/84LwX/RT0H/1BJ
138
BP9pZBH/eHYa/46QPP+nsmr/rLdw/83uxP/U+dP/t8SJ/6q1df+MjDL/f3kY/2VdCv9XUQf/U0wK/zcw
139
CP9QSgb/XlkL/3VzJP+anlT/uMuV/8flvv/R+ef/1fzq/8zsxv+6zZX/rbx+/5GUR/90cSz/QjsF/0E7
140
Bv8ZFRD/JyIM/zw1B/8zLQj/OzQI/09JDP9RSgv/X1cO/1ZMCv9TSwn/R0EI/zw1Bv87Ngj/NzIJ/zQv
141
B/8nIAv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
142
AAAAAAAAAAAAAA==
143
</value>
144
</data>
145
</root>
@@ -1,17 +1,40 @@
1
namespace SeaOfRadiationEditor
1
using XFEExtension.NetCore.MemoryEditor.Manager;
2
3
namespace SeaOfRadiationEditor;
4
5
internal static class Program
2
6
{
3
internal static class Program
7
public static DynamicMemoryManager Manager { get; } = MemoryManager.CreateBuilder()
8
.WithAutoReacquireProcess("Sea_of_Radiation_Prologue")
9
.WithFindProcessWhenCreate()
10
.BuildDynamicManager(
11
MemoryItemBuilder.Create<int>("Reset")
12
.WithResolvePointer("mono-2.0-bdwgc.dll", 0x0072A200, 0x14A0, 0x0, 0x80, 0xE4, 0x0, 0x1EC)
13
.WithListener(),
14
MemoryItemBuilder.Create<float>("TimeCounter")
15
.WithResolvePointer("mono-2.0-bdwgc.dll", 0x0072A200, 0x12E8, 0x0, 0x80, 0xE4, 0x0, 0x1E0)
16
.WithListener(),
17
MemoryItemBuilder.Create<float>("Stamina")
18
.WithResolvePointer("mono-2.0-bdwgc.dll", 0x0072A200, 0x14E0, 0x48, 0x10, 0x20, 0x50, 0x20, 0x1B0)
19
.WithListener());
20
/// <summary>
21
/// The main entry point for the application.
22
/// </summary>
23
[STAThread]
24
static void Main()
4
25
{
5
/// <summary>
6
/// The main entry point for the application.
7
/// </summary>
8
[STAThread]
9
static void Main()
10
{
11
// To customize application configuration such as set high DPI settings or default font,
12
// see https://aka.ms/applicationconfiguration.
13
ApplicationConfiguration.Initialize();
14
Application.Run(new Form1());
15
}
26
// To customize application configuration such as set high DPI settings or default font,
27
// see https://aka.ms/applicationconfiguration.
28
ApplicationConfiguration.Initialize();
29
var mainForm = new MainForm();
30
Manager.CurrentProcessEntered += Manager_CurrentProcessEntered;
31
Manager.CurrentProcessExit += Manager_CurrentProcessExit;
32
if (Manager.CurrentProcess is not null && !Manager.CurrentProcess.HasExited)
33
SystemProfile.IsGameRunning = true;
34
else
35
SystemProfile.IsGameRunning = false;
36
Application.Run(mainForm);
16
37
}
38
private static void Manager_CurrentProcessExit(object? sender, EventArgs e) => SystemProfile.IsGameRunning = false;
39
private static void Manager_CurrentProcessEntered(object? sender, EventArgs e) => SystemProfile.IsGameRunning = true;
17
40
}
@@ -0,0 +1,73 @@
1
//------------------------------------------------------------------------------
2
// <auto-generated>
3
// 此代码由工具生成。
4
// 运行时版本:4.0.30319.42000
5
//
6
// 对此文件的更改可能会导致不正确的行为,并且如果
7
// 重新生成代码,这些更改将会丢失。
8
// </auto-generated>
9
//------------------------------------------------------------------------------
10
11
namespace SeaOfRadiationEditor.Properties {
12
using System;
13
14
15
/// <summary>
16
/// 一个强类型的资源类,用于查找本地化的字符串等。
17
/// </summary>
18
// 此类是由 StronglyTypedResourceBuilder
19
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
20
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
21
// (以 /str 作为命令选项),或重新生成 VS 项目。
22
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
23
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25
internal class Resources {
26
27
private static global::System.Resources.ResourceManager resourceMan;
28
29
private static global::System.Globalization.CultureInfo resourceCulture;
30
31
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32
internal Resources() {
33
}
34
35
/// <summary>
36
/// 返回此类使用的缓存的 ResourceManager 实例。
37
/// </summary>
38
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39
internal static global::System.Resources.ResourceManager ResourceManager {
40
get {
41
if (object.ReferenceEquals(resourceMan, null)) {
42
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SeaOfRadiationEditor.Properties.Resources", typeof(Resources).Assembly);
43
resourceMan = temp;
44
}
45
return resourceMan;
46
}
47
}
48
49
/// <summary>
50
/// 重写当前线程的 CurrentUICulture 属性,对
51
/// 使用此强类型资源类的所有资源查找执行重写。
52
/// </summary>
53
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54
internal static global::System.Globalization.CultureInfo Culture {
55
get {
56
return resourceCulture;
57
}
58
set {
59
resourceCulture = value;
60
}
61
}
62
63
/// <summary>
64
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
65
/// </summary>
66
internal static System.Drawing.Bitmap background {
67
get {
68
object obj = ResourceManager.GetObject("background", resourceCulture);
69
return ((System.Drawing.Bitmap)(obj));
70
}
71
}
72
}
73
}
@@ -117,4 +117,8 @@
117
117
<resheader name="writer">
118
118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119
119
</resheader>
120
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121
<data name="background" type="System.Resources.ResXFileRef, System.Windows.Forms">
122
<value>..\Resources\background.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123
</data>
120
124
</root>
二进制文件已变更,无法进行逐行预览。
@@ -8,4 +8,23 @@
8
8
<ImplicitUsings>enable</ImplicitUsings>
9
9
</PropertyGroup>
10
10
11
<ItemGroup>
12
<PackageReference Include="XFEExtension.NetCore.MemoryEditor" Version="2.0.2" />
13
</ItemGroup>
14
15
<ItemGroup>
16
<Compile Update="Properties\Resources.Designer.cs">
17
<DesignTime>True</DesignTime>
18
<AutoGen>True</AutoGen>
19
<DependentUpon>Resources.resx</DependentUpon>
20
</Compile>
21
</ItemGroup>
22
23
<ItemGroup>
24
<EmbeddedResource Update="Properties\Resources.resx">
25
<Generator>ResXFileCodeGenerator</Generator>
26
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
27
</EmbeddedResource>
28
</ItemGroup>
29
11
30
</Project>
@@ -0,0 +1,59 @@
1
using XFEExtension.NetCore.ProfileExtension;
2
3
namespace SeaOfRadiationEditor;
4
5
public static partial class SystemProfile
6
{
7
private static bool isGameRunning;
8
9
public static bool IsGameRunning
10
{
11
get { return isGameRunning; }
12
set
13
{
14
isGameRunning = value;
15
if (value)
16
{
17
try
18
{
19
MainForm.Current?.Invoke(() => MainForm.Current.Text = "辐射之海:序章 3项修改器[游戏进行中]");
20
}
21
catch
22
{
23
MainForm.Current!.Text = "辐射之海:序章 3项修改器[游戏进行中]";
24
}
25
}
26
else
27
{
28
try
29
{
30
MainForm.Current?.Invoke(() => MainForm.Current.Text = "辐射之海:序章 3项修改器[未启动游戏]");
31
}
32
catch
33
{
34
MainForm.Current!.Text = "辐射之海:序章 3项修改器[未启动游戏]";
35
}
36
MainForm.RemoveAllCheck();
37
}
38
}
39
}
40
41
[ProfileProperty]
42
[ProfilePropertyAddSet(@"try{ MainForm.Current?.Invoke(() => MainForm.Current.checkBox1.Checked = value); } catch {}")]
43
[ProfilePropertyAddSet(@"try{ MainForm.Current?.Invoke(() => MainForm.Current.textBox1.Enabled = !value); } catch {}")]
44
[ProfilePropertyAddSet(@"if(value) Program.Manager[""Reset""].StartListen(10); else Program.Manager[""Reset""].StopListen()")]
45
[ProfilePropertyAddSet("resetFuncStart = value")]
46
static bool resetFuncStart;
47
[ProfileProperty]
48
[ProfilePropertyAddSet(@"try{ MainForm.Current?.Invoke(() => MainForm.Current.checkBox2.Checked = value); } catch {}")]
49
[ProfilePropertyAddSet(@"try{ MainForm.Current?.Invoke(() => MainForm.Current.textBox2.Enabled = !value); } catch {}")]
50
[ProfilePropertyAddSet(@"if(value) Program.Manager[""TimeCounter""].StartListen(10); else Program.Manager[""TimeCounter""].StopListen()")]
51
[ProfilePropertyAddSet("timeCounterFuncStart = value")]
52
static bool timeCounterFuncStart;
53
[ProfileProperty]
54
[ProfilePropertyAddSet(@"try{ MainForm.Current?.Invoke(() => MainForm.Current.checkBox3.Checked = value); } catch {}")]
55
[ProfilePropertyAddSet(@"try{ MainForm.Current?.Invoke(() => MainForm.Current.textBox3.Enabled = !value); } catch {}")]
56
[ProfilePropertyAddSet(@"if(value) Program.Manager[""Stamina""].StartListen(10); else Program.Manager[""Stamina""].StopListen()")]
57
[ProfilePropertyAddSet("staminaFuncStart = value")]
58
static bool staminaFuncStart;
59
}
二进制文件已变更,无法进行逐行预览。
二进制文件已变更,无法进行逐行预览。