📄 gameobjects.cs
字号:
namespace WoWBot
{
using Microsoft.VisualBasic.CompilerServices;
using System;
using System.Runtime.CompilerServices;
using WoWBot.My;
public class GameObjects
{
public static int curObj;
public static int MyTargetGUID;
public static string MyTargetNAME;
public static int NearTargetGUID;
public static int NearTargetHealth;
public static string NearTargetLevel;
public static int NearTargetMaxHealth;
public static string NearTargetName;
public static int NearTargetX;
public static int NearTargetY;
public static int PlayerBase;
public static int s_curMgr;
public static string[] tab_GUID = new string[0x100];
public static string[] tab_tDistance = new string[0x100];
public static string[] tab_tHealth = new string[0x100];
public static string[] tab_tLevel = new string[0x100];
public static string[] tab_tMaxHealth = new string[0x100];
public static string[] tab_tName = new string[0x100];
public static string[] tab_tX = new string[0x100];
public static string[] tab_tY = new string[0x100];
public static string[] tab2_GUID = new string[0x100];
public static string[] tab2_tHealth = new string[0x100];
public static string[] tab2_tLevel = new string[0x100];
public static string[] tab2_tMaxHealth = new string[0x100];
public static string[] tab2_tName = new string[0x100];
public static string[] tab2_tX = new string[0x100];
public static string[] tab2_tY = new string[0x100];
public static int tMinDistance = 300;
public static object CheckLeaderTarget()
{
try
{
if (Main.NeedInject == 0)
{
Offset();
int num2 = 0;
int curObj = GameObjects.curObj;
int num4 = 0;
int num6 = 0;
int num3 = Conversions.ToInteger(func.ReadInt32(Offsets.PlayerTargetGUID));
while (GameObjects.curObj != 0)
{
int num8 = Conversions.ToInteger(func.ReadInt32(GameObjects.curObj + Offsets.ObjType));
if ((num8.ToString() == "3") | (num8.ToString() == "4"))
{
long num5 = Conversions.ToLong(func.ReadInt32(GameObjects.curObj + 0x30));
int num7 = Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + 8), Offsets.UnitTarget))));
num4 = Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + 8), Offsets.UnitHealth))));
num6 = Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + 8), Offsets.UnitMaxHealth))));
if ((num5.ToString() == Party.LeaderTargetGUID.ToString()) && ((num4 > 0) & (num4 < num6)))
{
return 1;
}
}
num2 = Conversions.ToInteger(func.ReadInt32(GameObjects.curObj + 60));
if (num2 == GameObjects.curObj)
{
break;
}
GameObjects.curObj = num2;
}
GameObjects.curObj = curObj;
}
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception exception = exception1;
ProjectData.ClearProjectError();
}
return 0;
}
public static object LeaderTarget()
{
try
{
if (Main.NeedInject == 0)
{
Offset();
int num2 = 0;
int curObj = GameObjects.curObj;
int num3 = Conversions.ToInteger(func.ReadInt32(Offsets.PlayerTargetGUID));
while (GameObjects.curObj != 0)
{
int num6 = Conversions.ToInteger(func.ReadInt32(GameObjects.curObj + Offsets.ObjType));
if ((num6.ToString() == "3") | (num6.ToString() == "4"))
{
long num4 = Conversions.ToLong(func.ReadInt32(GameObjects.curObj + 0x30));
int num5 = Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + 8), Offsets.UnitTarget))));
if (num4.ToString() == Party.LeaderGUID.ToString())
{
return num4;
}
}
num2 = Conversions.ToInteger(func.ReadInt32(GameObjects.curObj + 60));
if (num2 == GameObjects.curObj)
{
break;
}
GameObjects.curObj = num2;
}
GameObjects.curObj = curObj;
}
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception exception = exception1;
ProjectData.ClearProjectError();
}
return 0;
}
public static object NearestTarget()
{
int num = 0;
try
{
if ((Main.InCombat == 0) && (Main.NeedInject == 0))
{
Offset();
tMinDistance = 300;
for (int i = 0; i <= 0xff; i++)
{
tab_GUID[i] = "";
tab_tName[i] = "";
tab_tHealth[i] = "";
tab_tLevel[i] = "";
tab_tMaxHealth[i] = "";
tab_tX[i] = "";
tab_tY[i] = "";
tab_tDistance[i] = "";
}
int num5 = 0;
int curObj = GameObjects.curObj;
string[] strArray = new string[0x100];
int index = 0;
int num9 = 0;
int num12 = 0;
int num11 = 0;
int num13 = 0;
int num14 = 0;
int num7 = Conversions.ToInteger(func.ReadInt32(Offsets.PlayerTargetGUID));
while (GameObjects.curObj != 0)
{
long num15 = Conversions.ToLong(func.ReadInt32(GameObjects.curObj + Offsets.ObjType));
if ((num15.ToString() == "3") | (num15.ToString() == "4"))
{
long num10 = Conversions.ToLong(func.ReadInt32(GameObjects.curObj + 0x30));
int num8 = Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + 8), Offsets.UnitFaction))));
string str = Conversions.ToString(func.ReadASCIIString(Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + Offsets.UnitName1), Offsets.UnitName2))))));
num9 = Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + 8), Offsets.UnitHealth))));
num12 = Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + 8), Offsets.UnitMaxHealth))));
num11 = Conversions.ToInteger(func.ReadInt32(Conversions.ToInteger(Operators.AddObject(func.ReadInt32(GameObjects.curObj + 8), Offsets.UnitLevel))));
num13 = Conversions.ToInteger(func.ReadSingle(GameObjects.curObj + Offsets.UnitPos, 0));
num14 = Conversions.ToInteger(func.ReadSingle(GameObjects.curObj + Offsets.UnitPos, 4));
tab_GUID[index] = num10.ToString();
tab_tName[index] = str.ToString();
tab_tHealth[index] = num9.ToString();
tab_tLevel[index] = num11.ToString();
tab_tMaxHealth[index] = num12.ToString();
tab_tX[index] = num13.ToString();
tab_tY[index] = num14.ToString();
int num16 = (int) Math.Round((double) (num13 - Conversions.ToDouble(MyProject.Forms.Main.Label15.Text)));
int num17 = (int) Math.Round((double) (num14 - Conversions.ToDouble(MyProject.Forms.Main.Label16.Text)));
tab_tDistance[index] = Conversions.ToString(Math.Truncate(Math.Sqrt(Math.Pow((double) num16, 2.0) + Math.Pow((double) num17, 2.0))));
if ((((num15.ToString() == "3") && (num9 > 0)) && (MyProject.Forms.Config.FactionList.Text.Contains(Conversions.ToString(num8)) && !MyProject.Forms.Config.BlackListGUID.Text.Contains(Conversions.ToString(num10)))) && (Conversions.ToDouble(tab_tDistance[index]) < tMinDistance))
{
tMinDistance = Conversions.ToInteger(tab_tDistance[index]);
NearTargetName = str.ToString();
NearTargetGUID = (int) num10;
NearTargetX = num13;
NearTargetY = num14;
NearTargetHealth = num9;
NearTargetMaxHealth = num12;
NearTargetLevel = Conversions.ToString(num11);
num = 1;
}
}
num5 = Conversions.ToInteger(func.ReadInt32(GameObjects.curObj + 60));
if (num5 == GameObjects.curObj)
{
break;
}
GameObjects.curObj = num5;
}
GameObjects.curObj = curObj;
}
if (num == 0)
{
NearTargetHealth = 0;
}
}
catch (Exception exception1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -