📄 form1.cs
字号:
gw_ZB = gw_xp.ToString() + " " + gw_yp.ToString() + " " + "↑" + gw_zp.ToString();
gw.Items.Add(r[0] + " | " + gw_ZB + " | " + gw_distance.ToString() + "米" + " | " + gw_Str_Category + " | " + gw_hp.ToString()+ @"\"+gw_maxhp.ToString());
//TM1.Rows.Add(new Row());
//TM1.Rows[i].Cells.Add(new Cell(r[0]));
//TM1.Rows[i].Cells.Add(new Cell(gw_ZB));
//TM1.Rows[i].Cells.Add(new Cell(gw_distance.ToString()));
//TM1.Rows[i].Cells.Add(new Cell(gw_Str_Category));
}
}
}
private void infoTimer_Tick(object sender, EventArgs e)
{
if (radcaption.CheckState == CheckState.Checked)
{
radcapTimer.Enabled = true;
}
else
{
radcapTimer.Enabled = true;
this.Text = "完美辅助";
}
string Str_Renamed;
byte[] BuffEnum = new byte[31];
API.ReadProcessMemory(hProcess, Basc + NameOffset, out namebasc, 4, 0);
API.ReadProcessMemory(hProcess, namebasc, BuffEnum, 32, 0);
Str_Renamed = Encoding.Unicode.GetString(BuffEnum);
info.Text = Str_Renamed;
API.ReadProcessMemory(hProcess, Basc + LvOffset, out lv, 4, 0);
Lv.Text = Convert.ToString(lv);
API.ReadProcessMemory(hProcess, Basc + DSOffset, out ds, 4, 0);
DS.Text = Convert.ToString(ds);
API.ReadProcessMemory(hProcess, Basc + YSOffset, out ys, 4, 0);
YS.Text = Convert.ToString(ys);
API.ReadProcessMemory(hProcess, Basc + TZOffset, out tz, 4, 0);
TZ.Text = Convert.ToString(tz);
API.ReadProcessMemory(hProcess, Basc + LLOffset, out ll, 4, 0);
LL.Text = Convert.ToString(ll);
API.ReadProcessMemory(hProcess, Basc + NLLOffset, out nll, 4, 0);
NLL.Text = Convert.ToString(nll);
API.ReadProcessMemory(hProcess, Basc + MJOffset, out mj, 4, 0);
MJ.Text = Convert.ToString(mj);
this.ReadGW();
}
private void GameStart()
{
Process[] ps = Process.GetProcessesByName("elementclient");
if (ps.Length == 0)
{
MessageBox.Show("请先启动游戏!");
Application.Exit();
}
try
{
p = ps[0];
hProcess = API.OpenProcess(API.OPEN_PROCESS_ALL | API.PROCESS_CREATE_THREAD | API.PROCESS_VM_WRITE, 0, p.Id);
if (hProcess <= 0)
{
MessageBox.Show("打开进程失败!");
Application.Exit();
}
}
catch
{
}
}
/// <summary>
/// 读技能
/// </summary>
private void ReadJN()
{
API.ReadProcessMemory(hProcess, Basc + jl1, out jl2, 4, 0);//技能总数
API.ReadProcessMemory(hProcess, Basc + jlx, out jl3, 4, 0);//技能首地址
for (int x = 0; x<=jl2 - 1; x++)
{
string[] r;
API.ReadProcessMemory(hProcess, jl3 + 4 * x, out jl4, 4, 0);//指定技能地址
API.ReadProcessMemory(hProcess, jl4 + 0x8, out jl5, 4, 0);//ID
API.ReadProcessMemory(hProcess, jl4 + 0xC, out jl9, 4, 0);//等级
API.ReadProcessMemory(hProcess, jl4 + 0x4, out jl6, 4, 0);
API.ReadProcessMemory(hProcess, jl4 + 0x14, out jlb, 4, 0);//技能冷却时间
API.ReadProcessMemory(hProcess, jl6 + 0x4, out jl7, 4, 0);
API.ReadProcessMemory(hProcess, jl7 + 0xC, out NAD, 4, 0);
API.ReadProcessMemory(hProcess, NAD, xName, 36, 0);
string Str_JNname = Encoding.Unicode.GetString(xName);
r = Str_JNname.Split('\0');
TM2.Rows.Add(new Row());
TM2.Rows[x].Cells.Add(new Cell(r[0]));
TM2.Rows[x].Cells.Add(new Cell(jl9.ToString()));
TM2.Rows[x].Cells.Add(new Cell(jl5.ToString()));
TM2.Rows[x].Cells.Add(new Cell(((jlb/1000).ToString())+"秒"));
}
}
/// <summary>
/// 重要信息读取
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void imTimer_Tick(object sender, EventArgs e)
{
API.ReadProcessMemory(hProcess, Basc + HpOffset,out hp, 4, 0);
API.ReadProcessMemory(hProcess, Basc + MaxHpOffset,out maxhp, 4, 0);
HP.Text = Convert.ToString(hp) + @"\" + Convert.ToString(maxhp);
API.ReadProcessMemory(hProcess, Basc + MpOffset, out mp, 4, 0);
API.ReadProcessMemory(hProcess, Basc + MaxMpOffset, out maxmp, 4, 0);
nMP.Text = Convert.ToString(mp) + @"\" + Convert.ToString(maxmp);
API.ReadProcessMemory(hProcess, Basc + xOffset, out x, 4, 0);
xp = Convert.ToInt32(Math.Abs(x/10+400));
API.ReadProcessMemory(hProcess, Basc + yOffset, out y, 4, 0);
yp = Convert.ToInt32(Math.Abs(y/10+550));
API.ReadProcessMemory(hProcess, Basc + zOffset, out z, 4, 0);
zp = Convert.ToInt32(Math.Truncate(z/10));
ptxb.Text = Convert.ToString(xp) + " " + Convert.ToString(yp) + " " + "↑" + Convert.ToString(zp);
API.ReadProcessMemory(hProcess, Basc + ExpOffset,out exp, 4, 0);
API.ReadProcessMemory(hProcess, Basc + MaxExpOffset,out maxexp, 4, 0);
Exptbx.Text = Convert.ToString(exp) ;
API.ReadProcessMemory(hProcess, Basc + MoneyOffset, out money, 4, 0);
Money.Text = Convert.ToString(money);
if (hpdzcb.CheckState == CheckState.Checked)
{
dzTimer.Enabled = true;
}
else
{
dzTimer.Enabled = false;
}
}
private void dzTimer_Tick(object sender, EventArgs e)
{
try
{
int dzhp =int.Parse(hpdz.Text);
if (hp < dzhp)
{
Functions.dzcall(0x005BA3C0,p.Id);
}
else if (hp == maxhp)
{
Functions.dzcall(0x005BA400,p.Id);
}
}
catch { }
}
/// <summary>
/// 最近选怪
/// </summary>
/// <param name="GWID"></param>
private void SelectGW(int GWID)
{
}
private void startodo_Click(object sender, EventArgs e)
{
}
private void openbt_Click(object sender, EventArgs e)
{
if (openbt.Text == "开启BT功能")
{
openbt.Text = "关闭BT功能";
btgb.Enabled = true;
openbt.FlatStyle = FlatStyle.Popup;
btTimer.Enabled = true;
}
else if (openbt.Text == "关闭BT功能")
{
openbt.Text = "开启BT功能";
btgb.Enabled = false;
openbt.FlatStyle = FlatStyle.System;
btTimer.Enabled = false;
API.WriteProcessMemory(hProcess, cqEdx, out cqhf, 4, 0);
API.WriteProcessMemory(hProcess, mbEdx, out mbhf, 2, 0);
API.WriteProcessMemory(hProcess, ftEdx, out fthf, 2, 0);
}
}
private void btTimer_Tick(object sender, EventArgs e)
{
if (checkBox2.Checked)
{
API.WriteProcessMemory(hProcess, cqEdx, out cqfz, 4, 0);
}
else
{
API.WriteProcessMemory(hProcess, cqEdx, out cqhf, 4, 0);
}
if (checkBox7.Checked)
{
API.WriteProcessMemory(hProcess, ftEdx, out ftfz, 2, 0);
}
else
{
API.WriteProcessMemory(hProcess, ftEdx, out fthf, 2, 0);
}
if (checkBox3.Checked)
{
API.WriteProcessMemory(hProcess, mbEdx, out mbfz, 2, 0);
}
else
{
API.WriteProcessMemory(hProcess, mbEdx, out mbhf, 2, 0);
}
}
/// <summary>
/// 怪物死亡检查
/// </summary>
/// <returns></returns>
private int gwDie_Check()
{
int gw_ID;
API.ReadProcessMemory(hProcess, Basc + 0xA18, out gw_ID, 4, 0);
return gw_ID;
}
/// <summary>
/// 随机标题名,防止关键字检测
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void radcapTimer_Tick(object sender, EventArgs e)
{
string caption = Function.GenerateRandom(20);
this.Text = caption;//随机获取外挂标题
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -