⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gameobjects.cs

📁 EBot source for the popular MMORPG World of Warcraft
💻 CS
📖 第 1 页 / 共 3 页
字号:
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 + -