using System.Diagnostics;
using XFEExtension.NetCore.MemoryEditor;
using XFEExtension.NetCore.MemoryEditor.Manager;
namespace SeaOfRadiationEditor;
public partial class MainForm : Form
{
public static MainForm? Current { get; private set; }
private readonly DynamicMemoryItem _resetItem;
private readonly DynamicMemoryItem _healthItem;
private readonly DynamicMemoryItem _timeCounterItem;
private readonly DynamicMemoryItem _staminaItem;
private readonly DynamicMemoryItem _geneItem;
public MainForm()
{
InitializeComponent();
Current = this;
Program.Manager.ValueChanged += Manager_ValueChanged;
_resetItem = Program.Manager["Reset"];
_healthItem = Program.Manager["Health"];
_timeCounterItem = Program.Manager["TimeCounter"];
_staminaItem = Program.Manager["Stamina"];
_geneItem = Program.Manager["Gene"];
}
private void Manager_ValueChanged(MemoryItem sender, MemoryValue e)
{
Trace.WriteLine($"名称:{e.CustomName} 地址:{sender:X}\t是否读取到值 上次:{e.PreviousValueGetSuccessful} 这次:{e.CurrentValueGetSuccessful} 值从:{e.PreviousValue} 变更为:{e.CurrentValue}");
switch (e.CustomName)
{
case "Reset":
if (e.CurrentValueGetSuccessful && checkBox1.Checked)
{
if (!sender.Write(int.Parse(textBox1.Text)))
Trace.WriteLine($"Reset写入失败");
}
break;
case "Health":
if (e.CurrentValueGetSuccessful && checkBox5.Checked)
{
if (!sender.Write(int.Parse(textBox5.Text)))
Trace.WriteLine("Health写入失败");
}
break;
case "TimeCounter":
if (e.CurrentValueGetSuccessful && checkBox2.Checked)
{
if (!sender.Write(float.Parse(textBox2.Text)))
Trace.WriteLine("TimeCounter写入失败");
}
break;
case "Stamina":
if (e.CurrentValueGetSuccessful && checkBox3.Checked)
{
if (!sender.Write(float.Parse(textBox3.Text)))
Trace.WriteLine("Stamina写入失败");
}
break;
case "Gene":
if (e.CurrentValueGetSuccessful && checkBox4.Checked)
{
if (!sender.Write(int.Parse(textBox4.Text)))
Trace.WriteLine("Gene写入失败");
}
break;
}
}
private async void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox1.Enabled = false;
await Task.Delay(5);
Program.Manager["Reset"].Write(int.Parse(textBox1.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox1.Checked = false;
}
}
else
{
textBox1.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private async void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox2.Enabled = false;
await Task.Delay(5);
Program.Manager["TimeCounter"].Write(float.Parse(textBox2.Text));
_timeCounterItem.Write(float.Parse(textBox2.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox2.Checked = false;
}
}
else
{
textBox2.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private async void CheckBox3_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox3.Enabled = false;
await Task.Delay(5);
Program.Manager["Stamina"].Write(float.Parse(textBox3.Text));
_staminaItem.Write(float.Parse(textBox3.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox3.Checked = false;
}
}
else
{
textBox3.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private async void CheckBox4_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox4.Enabled = false;
await Task.Delay(5);
Program.Manager["Gene"].Write(int.Parse(textBox4.Text));
_geneItem.Write(int.Parse(textBox4.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox4.Checked = false;
}
}
else
{
textBox4.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private async void CheckBox5_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox5.Enabled = false;
await Task.Delay(5);
Program.Manager["Health"].Write(int.Parse(textBox5.Text));
_healthItem.Write(int.Parse(textBox5.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox5.Checked = false;
}
}
else
{
textBox5.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private static bool CheckGameStart()
{
if (SystemProfile.IsGameRunning) return true;
MessageBox.Show("请启动游戏");
return false;
}
public static void RemoveAllCheck()
{
Current?.Invoke(() => Current.checkBox1.Checked = false);
Current?.Invoke(() => Current.checkBox2.Checked = false);
Current?.Invoke(() => Current.checkBox3.Checked = false);
Current?.Invoke(() => Current.checkBox4.Checked = false);
Current?.Invoke(() => Current.checkBox5.Checked = false);
}
}
using System.Diagnostics;
using XFEExtension.NetCore.MemoryEditor;
using XFEExtension.NetCore.MemoryEditor.Manager;
namespace SeaOfRadiationEditor;
public partial class MainForm : Form
{
public static MainForm? Current { get; private set; }
private readonly DynamicMemoryItem _resetItem;
private readonly DynamicMemoryItem _healthItem;
private readonly DynamicMemoryItem _timeCounterItem;
private readonly DynamicMemoryItem _staminaItem;
private readonly DynamicMemoryItem _geneItem;
public MainForm()
{
InitializeComponent();
Current = this;
Program.Manager.ValueChanged += Manager_ValueChanged;
_resetItem = Program.Manager["Reset"];
_healthItem = Program.Manager["Health"];
_timeCounterItem = Program.Manager["TimeCounter"];
_staminaItem = Program.Manager["Stamina"];
_geneItem = Program.Manager["Gene"];
}
private void Manager_ValueChanged(MemoryItem sender, MemoryValue e)
{
Trace.WriteLine($"名称:{e.CustomName} 地址:{sender:X}\t是否读取到值 上次:{e.PreviousValueGetSuccessful} 这次:{e.CurrentValueGetSuccessful} 值从:{e.PreviousValue} 变更为:{e.CurrentValue}");
switch (e.CustomName)
{
case "Reset":
if (e.CurrentValueGetSuccessful && checkBox1.Checked)
{
if (!sender.Write(int.Parse(textBox1.Text)))
Trace.WriteLine($"Reset写入失败");
}
break;
case "Health":
if (e.CurrentValueGetSuccessful && checkBox5.Checked)
{
if (!sender.Write(int.Parse(textBox5.Text)))
Trace.WriteLine("Health写入失败");
}
break;
case "TimeCounter":
if (e.CurrentValueGetSuccessful && checkBox2.Checked)
{
if (!sender.Write(float.Parse(textBox2.Text)))
Trace.WriteLine("TimeCounter写入失败");
}
break;
case "Stamina":
if (e.CurrentValueGetSuccessful && checkBox3.Checked)
{
if (!sender.Write(float.Parse(textBox3.Text)))
Trace.WriteLine("Stamina写入失败");
}
break;
case "Gene":
if (e.CurrentValueGetSuccessful && checkBox4.Checked)
{
if (!sender.Write(int.Parse(textBox4.Text)))
Trace.WriteLine("Gene写入失败");
}
break;
}
}
private async void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox1.Enabled = false;
await Task.Delay(5);
Program.Manager["Reset"].Write(int.Parse(textBox1.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox1.Checked = false;
}
}
else
{
textBox1.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private async void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox2.Enabled = false;
await Task.Delay(5);
Program.Manager["TimeCounter"].Write(float.Parse(textBox2.Text));
_timeCounterItem.Write(float.Parse(textBox2.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox2.Checked = false;
}
}
else
{
textBox2.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private async void CheckBox3_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox3.Enabled = false;
await Task.Delay(5);
Program.Manager["Stamina"].Write(float.Parse(textBox3.Text));
_staminaItem.Write(float.Parse(textBox3.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox3.Checked = false;
}
}
else
{
textBox3.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private async void CheckBox4_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox4.Enabled = false;
await Task.Delay(5);
Program.Manager["Gene"].Write(int.Parse(textBox4.Text));
_geneItem.Write(int.Parse(textBox4.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox4.Checked = false;
}
}
else
{
textBox4.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private async void CheckBox5_CheckedChanged(object sender, EventArgs e)
{
try
{
if (sender is not CheckBox checkBox) return;
if (checkBox.Checked)
{
if (CheckGameStart())
{
try
{
textBox5.Enabled = false;
await Task.Delay(5);
Program.Manager["Health"].Write(int.Parse(textBox5.Text));
_healthItem.Write(int.Parse(textBox5.Text));
}
catch (Exception ex)
{
Trace.WriteLine(ex.ToString());
}
}
else
{
checkBox5.Checked = false;
}
}
else
{
textBox5.Enabled = true;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
private static bool CheckGameStart()
{
if (SystemProfile.IsGameRunning) return true;
MessageBox.Show("请启动游戏");
return false;
}
public static void RemoveAllCheck()
{
Current?.Invoke(() => Current.checkBox1.Checked = false);
Current?.Invoke(() => Current.checkBox2.Checked = false);
Current?.Invoke(() => Current.checkBox3.Checked = false);
Current?.Invoke(() => Current.checkBox4.Checked = false);
Current?.Invoke(() => Current.checkBox5.Checked = false);
}
}