ver 0.0.3
This commit is contained in:
parent
daef372766
commit
097e0e7af0
92
rabiribi_splitter/Form1.Designer.cs
generated
92
rabiribi_splitter/Form1.Designer.cs
generated
@ -39,6 +39,12 @@
|
|||||||
this.musicLabel = new System.Windows.Forms.Label();
|
this.musicLabel = new System.Windows.Forms.Label();
|
||||||
this.cbBoss = new System.Windows.Forms.CheckBox();
|
this.cbBoss = new System.Windows.Forms.CheckBox();
|
||||||
this.cbComputer = new System.Windows.Forms.CheckBox();
|
this.cbComputer = new System.Windows.Forms.CheckBox();
|
||||||
|
this.cbBoss1 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.cbBoss3 = new System.Windows.Forms.CheckBox();
|
||||||
|
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.t1 = new System.Windows.Forms.Label();
|
||||||
|
this.t2 = new System.Windows.Forms.Label();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.portNum)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.portNum)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
@ -120,8 +126,9 @@
|
|||||||
//
|
//
|
||||||
// musicLabel
|
// musicLabel
|
||||||
//
|
//
|
||||||
|
this.musicLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
this.musicLabel.AutoSize = true;
|
this.musicLabel.AutoSize = true;
|
||||||
this.musicLabel.Location = new System.Drawing.Point(13, 159);
|
this.musicLabel.Location = new System.Drawing.Point(13, 477);
|
||||||
this.musicLabel.Name = "musicLabel";
|
this.musicLabel.Name = "musicLabel";
|
||||||
this.musicLabel.Size = new System.Drawing.Size(41, 12);
|
this.musicLabel.Size = new System.Drawing.Size(41, 12);
|
||||||
this.musicLabel.TabIndex = 14;
|
this.musicLabel.TabIndex = 14;
|
||||||
@ -129,13 +136,14 @@
|
|||||||
//
|
//
|
||||||
// cbBoss
|
// cbBoss
|
||||||
//
|
//
|
||||||
|
this.cbBoss.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||||
this.cbBoss.AutoSize = true;
|
this.cbBoss.AutoSize = true;
|
||||||
this.cbBoss.Enabled = false;
|
this.cbBoss.Enabled = false;
|
||||||
this.cbBoss.Location = new System.Drawing.Point(15, 174);
|
this.cbBoss.Location = new System.Drawing.Point(15, 492);
|
||||||
this.cbBoss.Name = "cbBoss";
|
this.cbBoss.Name = "cbBoss";
|
||||||
this.cbBoss.Size = new System.Drawing.Size(138, 16);
|
this.cbBoss.Size = new System.Drawing.Size(84, 16);
|
||||||
this.cbBoss.TabIndex = 15;
|
this.cbBoss.TabIndex = 15;
|
||||||
this.cbBoss.Text = "BOSS music playing!";
|
this.cbBoss.Text = "BOSS event";
|
||||||
this.cbBoss.UseVisualStyleBackColor = true;
|
this.cbBoss.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// cbComputer
|
// cbComputer
|
||||||
@ -150,11 +158,79 @@
|
|||||||
this.cbComputer.Text = "Split when find the computer";
|
this.cbComputer.Text = "Split when find the computer";
|
||||||
this.cbComputer.UseVisualStyleBackColor = true;
|
this.cbComputer.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// cbBoss1
|
||||||
|
//
|
||||||
|
this.cbBoss1.AutoSize = true;
|
||||||
|
this.cbBoss1.Checked = true;
|
||||||
|
this.cbBoss1.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.cbBoss1.Location = new System.Drawing.Point(15, 119);
|
||||||
|
this.cbBoss1.Name = "cbBoss1";
|
||||||
|
this.cbBoss1.Size = new System.Drawing.Size(318, 16);
|
||||||
|
this.cbBoss1.TabIndex = 17;
|
||||||
|
this.cbBoss1.Text = "Split when Miru/Nixie despawn, ignore their music";
|
||||||
|
this.cbBoss1.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// cbBoss3
|
||||||
|
//
|
||||||
|
this.cbBoss3.AutoSize = true;
|
||||||
|
this.cbBoss3.Checked = true;
|
||||||
|
this.cbBoss3.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.cbBoss3.Location = new System.Drawing.Point(15, 141);
|
||||||
|
this.cbBoss3.Name = "cbBoss3";
|
||||||
|
this.cbBoss3.Size = new System.Drawing.Size(276, 16);
|
||||||
|
this.cbBoss3.TabIndex = 19;
|
||||||
|
this.cbBoss3.Text = "Split when Noah 3 HP = 0, ignore her music";
|
||||||
|
this.cbBoss3.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// linkLabel1
|
||||||
|
//
|
||||||
|
this.linkLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||||
|
this.linkLabel1.AutoSize = true;
|
||||||
|
this.linkLabel1.Location = new System.Drawing.Point(804, 496);
|
||||||
|
this.linkLabel1.Name = "linkLabel1";
|
||||||
|
this.linkLabel1.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.linkLabel1.TabIndex = 20;
|
||||||
|
this.linkLabel1.TabStop = true;
|
||||||
|
this.linkLabel1.Text = "GitHub";
|
||||||
|
//
|
||||||
|
// t1
|
||||||
|
//
|
||||||
|
this.t1.AutoSize = true;
|
||||||
|
this.t1.Location = new System.Drawing.Point(498, 37);
|
||||||
|
this.t1.Name = "t1";
|
||||||
|
this.t1.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.t1.TabIndex = 21;
|
||||||
|
this.t1.Text = "label1";
|
||||||
|
//
|
||||||
|
// t2
|
||||||
|
//
|
||||||
|
this.t2.AutoSize = true;
|
||||||
|
this.t2.Location = new System.Drawing.Point(694, 36);
|
||||||
|
this.t2.Name = "t2";
|
||||||
|
this.t2.Size = new System.Drawing.Size(41, 12);
|
||||||
|
this.t2.TabIndex = 22;
|
||||||
|
this.t2.Text = "label4";
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
this.label1.AutoSize = true;
|
||||||
|
this.label1.Location = new System.Drawing.Point(500, 13);
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
this.label1.Size = new System.Drawing.Size(59, 12);
|
||||||
|
this.label1.TabIndex = 23;
|
||||||
|
this.label1.Text = "DebugArea";
|
||||||
|
//
|
||||||
// Form1
|
// Form1
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(334, 221);
|
this.ClientSize = new System.Drawing.Size(857, 520);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Controls.Add(this.t2);
|
||||||
|
this.Controls.Add(this.t1);
|
||||||
|
this.Controls.Add(this.linkLabel1);
|
||||||
|
this.Controls.Add(this.cbBoss3);
|
||||||
|
this.Controls.Add(this.cbBoss1);
|
||||||
this.Controls.Add(this.cbComputer);
|
this.Controls.Add(this.cbComputer);
|
||||||
this.Controls.Add(this.cbBoss);
|
this.Controls.Add(this.cbBoss);
|
||||||
this.Controls.Add(this.musicLabel);
|
this.Controls.Add(this.musicLabel);
|
||||||
@ -185,6 +261,12 @@
|
|||||||
private System.Windows.Forms.Label musicLabel;
|
private System.Windows.Forms.Label musicLabel;
|
||||||
private System.Windows.Forms.CheckBox cbBoss;
|
private System.Windows.Forms.CheckBox cbBoss;
|
||||||
private System.Windows.Forms.CheckBox cbComputer;
|
private System.Windows.Forms.CheckBox cbComputer;
|
||||||
|
private System.Windows.Forms.CheckBox cbBoss1;
|
||||||
|
private System.Windows.Forms.CheckBox cbBoss3;
|
||||||
|
private System.Windows.Forms.LinkLabel linkLabel1;
|
||||||
|
private System.Windows.Forms.Label t1;
|
||||||
|
private System.Windows.Forms.Label t2;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,22 +29,34 @@ namespace rabiribi_splitter
|
|||||||
private string rabiribititle;
|
private string rabiribititle;
|
||||||
private string rabiver;
|
private string rabiver;
|
||||||
private int veridx;
|
private int veridx;
|
||||||
|
private List<int> lastbosslist = new List<int>();
|
||||||
|
private int lastnoah3hp = -1;
|
||||||
|
|
||||||
public Form1()
|
public Form1()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
memoryThread=new Thread(() =>
|
LinkLabel.Link link = new LinkLabel.Link();
|
||||||
{
|
link.LinkData = "https://github.com/copyliu/rabiribi_splitter";
|
||||||
while (true)
|
linkLabel1.Links.Add(link);
|
||||||
{
|
linkLabel1.LinkClicked += LinkLabel1_LinkClicked;
|
||||||
readmemory();
|
memoryThread = new Thread(() =>
|
||||||
Thread.Sleep(10);
|
{
|
||||||
}
|
while (true)
|
||||||
|
{
|
||||||
|
readmemory();
|
||||||
|
Thread.Sleep(10);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
memoryThread.IsBackground = true;
|
memoryThread.IsBackground = true;
|
||||||
memoryThread.Start();
|
memoryThread.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||||
|
{
|
||||||
|
// Send the URL to the operating system.
|
||||||
|
Process.Start(e.Link.LinkData as string);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void readmemory()
|
private void readmemory()
|
||||||
@ -114,7 +126,7 @@ namespace rabiribi_splitter
|
|||||||
|
|
||||||
int musicaddr = StaticData.MusicAddr[veridx];
|
int musicaddr = StaticData.MusicAddr[veridx];
|
||||||
int musicid = MemoryHelper.GetMemoryValue<int>(process, musicaddr);
|
int musicid = MemoryHelper.GetMemoryValue<int>(process, musicaddr);
|
||||||
if (musicid < StaticData.MusicNames.Length)
|
if (musicid >= 0 && musicid < StaticData.MusicNames.Length)
|
||||||
{
|
{
|
||||||
if (lastmusicid != musicid)
|
if (lastmusicid != musicid)
|
||||||
{
|
{
|
||||||
@ -141,13 +153,15 @@ namespace rabiribi_splitter
|
|||||||
if (bossmusicflag) //boss music start!
|
if (bossmusicflag) //boss music start!
|
||||||
{
|
{
|
||||||
bossbattle = true;
|
bossbattle = true;
|
||||||
|
lastbosslist = new List<int>();
|
||||||
|
lastnoah3hp = -1;
|
||||||
if (cbBossStart.Checked)
|
if (cbBossStart.Checked)
|
||||||
{
|
{
|
||||||
sendsplit();
|
sendsplit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bossbattle)
|
else
|
||||||
{
|
{
|
||||||
if (!bossmusicflag) //boss music end!
|
if (!bossmusicflag) //boss music end!
|
||||||
{
|
{
|
||||||
@ -171,8 +185,96 @@ namespace rabiribi_splitter
|
|||||||
|
|
||||||
#region SpecialBOSS
|
#region SpecialBOSS
|
||||||
|
|
||||||
|
if (bossbattle)
|
||||||
|
{
|
||||||
|
if (cbBoss1.Checked || cbBoss3.Checked)
|
||||||
|
{
|
||||||
|
int Noah3HP = -1;
|
||||||
|
int mapid = MemoryHelper.GetMemoryValue<int>(process, StaticData.MapAddress[veridx]);
|
||||||
|
if (mapid >= 0 && mapid < StaticData.MapNames.Length)
|
||||||
|
{
|
||||||
|
int ptr = MemoryHelper.GetMemoryValue<int>(process, StaticData.EnenyPtrAddr[veridx]);
|
||||||
|
List<int> bosses = new List<int>();
|
||||||
|
for (var i = 0; i < 50; i++)
|
||||||
|
{
|
||||||
|
ptr = ptr + StaticData.EnenyEntitySize[veridx];
|
||||||
|
|
||||||
|
var emyid = MemoryHelper.GetMemoryValue<int>(process,
|
||||||
|
ptr + StaticData.EnenyEnitiyIDOffset[veridx], false);
|
||||||
|
if (StaticData.BossNames.ContainsKey(emyid))
|
||||||
|
{
|
||||||
|
bosses.Add(emyid);
|
||||||
|
if (emyid == 1053)
|
||||||
|
{
|
||||||
|
Noah3HP = MemoryHelper.GetMemoryValue<int>(process,
|
||||||
|
ptr + StaticData.EnenyEnitiyHPOffset[veridx], false);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (cbBoss1.Checked)
|
||||||
|
{
|
||||||
|
foreach (var boss in lastbosslist)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (boss == 1024 || boss == 1043)
|
||||||
|
{
|
||||||
|
if (!bosses.Contains(boss)) //despawn
|
||||||
|
{
|
||||||
|
sendsplit();
|
||||||
|
bossbattle = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cbBoss3.Checked)
|
||||||
|
{
|
||||||
|
if (bosses.Contains(1053) && Noah3HP < lastnoah3hp && Noah3HP == 1)
|
||||||
|
{
|
||||||
|
sendsplit();
|
||||||
|
bossbattle = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lastbosslist = bosses;
|
||||||
|
lastnoah3hp = Noah3HP;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion SpecialBOSS
|
#endregion SpecialBOSS
|
||||||
|
|
||||||
|
|
||||||
|
// {
|
||||||
|
// int ptr = MemoryHelper.GetMemoryValue<int>(process, StaticData.EnenyPtrAddr[veridx]);
|
||||||
|
// List<int> bosses = new List<int>();
|
||||||
|
// List<int> HPS = new List<int>();
|
||||||
|
// for (var i = 0; i < 50; i++)
|
||||||
|
// {
|
||||||
|
// ptr += StaticData.EnenyEntitySize[veridx];
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// bosses.Add(MemoryHelper.GetMemoryValue<int>(process,
|
||||||
|
// ptr + StaticData.EnenyEnitiyIDOffset[veridx], false));
|
||||||
|
// HPS.Add(MemoryHelper.GetMemoryValue<int>(process,
|
||||||
|
// ptr + StaticData.EnenyEnitiyHPOffset[veridx], false));
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// this.Invoke(new Action(() =>
|
||||||
|
// {
|
||||||
|
// t1.Text = string.Join("\n", bosses);
|
||||||
|
// t2.Text = string.Join("\n", HPS);
|
||||||
|
// }));
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// }
|
||||||
this.Invoke(new Action(() => cbBoss.Checked = bossbattle));
|
this.Invoke(new Action(() => cbBoss.Checked = bossbattle));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -197,21 +299,21 @@ namespace rabiribi_splitter
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var b = Encoding.UTF8.GetBytes("split\r\n");
|
var b = Encoding.UTF8.GetBytes("split\r\n");
|
||||||
networkStream.Write(b,0,b.Length);
|
networkStream.Write(b, 0, b.Length);
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
|
|
||||||
disconnect();
|
disconnect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void disconnect()
|
void disconnect()
|
||||||
{
|
{
|
||||||
tcpclient = null;
|
tcpclient = null;
|
||||||
connectBtn.Enabled = true;
|
connectBtn.Enabled = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void button2_Click(object sender, EventArgs e)
|
private void button2_Click(object sender, EventArgs e)
|
||||||
|
@ -18,7 +18,7 @@ namespace rabiribi_splitter
|
|||||||
|
|
||||||
private const int PROCESS_WM_READ = 0x0010;
|
private const int PROCESS_WM_READ = 0x0010;
|
||||||
|
|
||||||
public static T GetMemoryValue<T>(Process process, int addr)
|
public static T GetMemoryValue<T>(Process process, int addr,bool baseaddr=true)
|
||||||
{
|
{
|
||||||
int datasize;
|
int datasize;
|
||||||
switch (Type.GetTypeCode(typeof(T)))
|
switch (Type.GetTypeCode(typeof(T)))
|
||||||
@ -49,9 +49,17 @@ namespace rabiribi_splitter
|
|||||||
|
|
||||||
byte[] buffer = new byte[datasize];
|
byte[] buffer = new byte[datasize];
|
||||||
int bytesRead = 0;
|
int bytesRead = 0;
|
||||||
|
|
||||||
IntPtr processHandle = OpenProcess(PROCESS_WM_READ, false, process.Id);
|
IntPtr processHandle = OpenProcess(PROCESS_WM_READ, false, process.Id);
|
||||||
ReadProcessMemory((int) processHandle, process.MainModule.BaseAddress.ToInt32() + addr, buffer,
|
if (baseaddr)
|
||||||
datasize, ref bytesRead);
|
{ ReadProcessMemory((int) processHandle, process.MainModule.BaseAddress.ToInt32() + addr, buffer,
|
||||||
|
datasize, ref bytesRead);}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ReadProcessMemory((int)processHandle, addr, buffer,
|
||||||
|
datasize, ref bytesRead);
|
||||||
|
|
||||||
|
}
|
||||||
switch (Type.GetTypeCode(typeof(T)))
|
switch (Type.GetTypeCode(typeof(T)))
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -149,12 +149,13 @@ namespace rabiribi_splitter
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
public static int[] MapAddress = { 0xA3353C,0};
|
public static int[] MapAddress = { 0xA3353C, 0xA57020 };
|
||||||
public static int[] EnenyPtrAddr = { 0x00940EE0,0};
|
public static int[] EnenyPtrAddr = { 0x00940EE0, 0x00964A1C };
|
||||||
public static int[] EnenyEnitiyOffset = { 0x4e4,0};
|
public static int[] EnenyEnitiyHPOffset = { 0x4c8, 0x4d0 };
|
||||||
public static int[] EnenyEntitySize = {0x6F4, 0x6F4 };
|
public static int[] EnenyEnitiyIDOffset = { 0x4e4,0x4ec};
|
||||||
|
public static int[] EnenyEntitySize = {0x6F4, 0x6FC };
|
||||||
public static int[] MaxEntityEntry = { 50,50 };
|
public static int[] MaxEntityEntry = { 50,50 };
|
||||||
public static int[] MoneyAddress = { 0xD3823C, };
|
public static int[] MoneyAddress = { 0xD3823C, 0xD5B9FC };
|
||||||
public static string[] VerNames = {"1.65", "1.70"};
|
public static string[] VerNames = {"1.65", "1.70"};
|
||||||
public static int[] MusicAddr =
|
public static int[] MusicAddr =
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user