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

📄 bot.cs

📁 EBot source for the popular MMORPG World of Warcraft
💻 CS
📖 第 1 页 / 共 2 页
字号:
            func.oldWait(0x5dc);
            Interaction.AppActivate(Main.wow.ProcessId);
            SendKeys.Send("^A");
            SendKeys.Send("{BACKSPACE}");
            SendKeys.Send(str2);
            func.oldWait(0xbb8);
            Interaction.AppActivate(Main.wow.ProcessId);
            SendKeys.Send("{ENTER}");
            func.oldWait(0x1388);
            Interaction.AppActivate(Main.wow.ProcessId);
            SendKeys.Send("{ENTER}");
            func.logmsg("[BOT] Attente de 20s pour relance le bot");
            func.oldWait(0x4e20);
            botStart();
            return 0;
        }

        public static object Shrink()
        {
            func.RECT rect;
            int width = Screen.PrimaryScreen.Bounds.Width;
            int height = Screen.PrimaryScreen.Bounds.Height;
            func.GetWindowRect((int) Main.wow.WindowHandle, ref rect);
            int top = rect.Top;
            int left = rect.Left;
            int num9 = rect.Right - rect.Left;
            int num6 = rect.Bottom - rect.Top;
            int num4 = (int) Math.Round((double) ((((double) num9) / 2.0) + left));
            int num5 = (int) Math.Round((double) ((((double) num6) / 2.0) + top));
            if (Operators.ConditionalCompareObjectEqual(Main.WowWindowSize, "normal", false))
            {
                double a = Math.Round((double) (((double) num6) / (((double) num9) / 500.0)));
                func.SetWindowPos((int) Main.wow.WindowHandle, 0, left, top, 500, (int) Math.Round(a), 0);
                Main.WoWWindowX = num9;
                Main.WoWWindowY = num6;
                Main.WowWindowSize = "shrink";
            }
            else if (Operators.ConditionalCompareObjectEqual(Main.WowWindowSize, "shrink", false))
            {
                func.SetWindowPos((int) Main.wow.WindowHandle, 0, left, top, Main.WoWWindowX, Main.WoWWindowY, 0);
                Main.WowWindowSize = "normal";
            }
            return 0;
        }

        public static object stopcast()
        {
            Clavier.ReculerDown();
            Clavier.ReculerUp();
            return 0;
        }

        public static object targetting()
        {
            int nearTargetX = GameObjects.NearTargetX;
            int nearTargetY = GameObjects.NearTargetY;
            int nearTargetGUID = GameObjects.NearTargetGUID;
            if (((GameObjects.tMinDistance < Conversions.ToDouble(MyProject.Forms.Config.TargettingDistance.Text)) & (Main.havetarget == 0)) & (GameObjects.NearTargetHealth > 0))
            {
                Clavier.AvancerUp();
                func.logmsg("[BOT] + - - - - - - - - - - Targeting - - - - - - - - - - - -");
                func.logmsg("[BOT] | Name : " + GameObjects.NearTargetName + "\r\n");
                func.logmsg("\r\n[BOT] | Life : " + GameObjects.NearTargetHealth.ToString() + " / " + GameObjects.NearTargetMaxHealth.ToString());
                func.logmsg("[BOT] | Level : " + GameObjects.NearTargetLevel.ToString());
                func.logmsg("[BOT] | Position : X = " + Math.Truncate(new decimal(GameObjects.NearTargetX)).ToString() + " Y = " + Math.Truncate(new decimal(GameObjects.NearTargetY)).ToString());
                face(Conversions.ToSingle(calculface(nearTargetX, nearTargetY)));
                if (Main.havetarget == 0)
                {
                    func.oldWait(400);
                    Clavier.TAB();
                    func.oldWait(0x3e8);
                    if (Main.havetarget != 0)
                    {
                        func.logmsg("[BOT] I have a target!");
                        Main.TargetName = GameObjects.NearTargetName.ToString();
                        combat();
                        return 1;
                    }
                    if (!MyProject.Forms.Config.AutoBlacklist.Checked)
                    {
                        func.logmsg("[BOT] Targeting impossible, blacklisting");
                        MyProject.Forms.Config.BlackListGUID.AppendText("GUID = " + nearTargetGUID.ToString() + "\r\n");
                    }
                    return 0;
                }
            }
            return 0;
        }

        public static object walkforloot(object x, object y)
        {
            string str = "running";
            face(Conversions.ToSingle(calculface(RuntimeHelpers.GetObjectValue(x), RuntimeHelpers.GetObjectValue(y))));
            str = "running";
            while (str == "running")
            {
                func.oldWait(1);
                Clavier.AvancerDown();
                if (Main.facingtimerval == 1)
                {
                    face(Conversions.ToSingle(calculface(RuntimeHelpers.GetObjectValue(x), RuntimeHelpers.GetObjectValue(y))));
                    Main.facingtimerval = 0;
                }
                if (Conversions.ToBoolean(Operators.AndObject(Operators.AndObject(Operators.AndObject(Operators.CompareObjectGreater(MyProject.Forms.Main.Label15.Text, Operators.SubtractObject(x, 1.5), false), Operators.CompareObjectLess(MyProject.Forms.Main.Label15.Text, Operators.AddObject(x, 1.5), false)), Operators.CompareObjectGreater(MyProject.Forms.Main.Label16.Text, Operators.SubtractObject(y, 1.5), false)), Operators.CompareObjectLess(MyProject.Forms.Main.Label16.Text, Operators.AddObject(y, 1.5), false))))
                {
                    Clavier.AvancerUp();
                    str = "normal";
                    break;
                }
            }
            Clavier.AvancerUp();
            return 0;
        }

        public static object walkwaypoint()
        {
            if (MyProject.Forms.UniverselSettings.PartyActive.Checked & (MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower"))
            {
                if ((Party.LeaderGUID == 0) & (MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower"))
                {
                    Party.FindLeaderGUID();
                    func.logmsg("[PARTY] Leader GUID : " + Party.LeaderGUID.ToString());
                }
                if ((MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower") & (Party.InCombat == 0))
                {
                    func.logmsg("[PARTY] Following leader : " + MyProject.Forms.UniverselSettings.PartyLeaderName.Text);
                    Clavier.SendTextToWoWChat("/follow " + MyProject.Forms.UniverselSettings.PartyLeaderName.Text);
                }
                if (Conversions.ToBoolean(Operators.AndObject(MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower", Operators.CompareObjectEqual(func.ReadInt32(0x10a68e0), Party.LeaderGUID, false))))
                {
                    int right = Conversions.ToInteger(func.ReadInt32(0x10a68e0));
                    Clavier.f();
                    func.oldWait(0x7d0);
                    if (Operators.ConditionalCompareObjectNotEqual(func.ReadInt32(0x10a68e0), right, false))
                    {
                        func.logmsg("[PARTY] Leader's target found\x00e9 !");
                        func.oldWait(0xbb8);
                    }
                }
                if (Conversions.ToBoolean(Operators.AndObject(Operators.AndObject(MyProject.Forms.UniverselSettings.PartyRole.Text == "Follower", Operators.CompareObjectNotEqual(func.ReadInt32(0x10a68e0), Party.LeaderGUID, false)), Party.InCombat == 0)))
                {
                    Clavier.SendTextToWoWChat("/target " + MyProject.Forms.UniverselSettings.PartyLeaderName.Text);
                }
                func.oldWait(0x3e8);
            }
            else
            {
                int index = Conversions.ToInteger(nearestwaypoint());
                string str = "running";
                if (Operators.ConditionalCompareObjectEqual(lastwaypoint, 1, false))
                {
                    index = 0;
                }
                while (index < (MyProject.Forms.Config.waypoint.Lines.Length - 2))
                {
                    int num4;
                    int num5;
                    MyProject.Forms.TimerForm.CheckingTarget.Enabled = true;
                    MyProject.Forms.TimerForm.CheckWalkwaypointBlock.Enabled = true;
                    if (((MyProject.Forms.Main.PlayerHealthBar.Value == 0) & (Conversions.ToDouble(MyProject.Forms.Main.Label15.Text) != 0.0)) & (Conversions.ToDouble(MyProject.Forms.Main.Label16.Text) != 0.0))
                    {
                        Dead.boucle();
                    }
                    if (Main.havetarget == 1)
                    {
                        combat();
                        face(Conversions.ToSingle(calculface(num4, num5)));
                    }
                    Array instance = MyProject.Forms.Config.waypoint.Lines[index].Split(new char[] { ';' });
                    try
                    {
                        string str3 = Conversions.ToString(NewLateBinding.LateIndexGet(instance, new object[] { 0 }, null));
                        string str4 = Conversions.ToString(NewLateBinding.LateIndexGet(instance, new object[] { 1 }, null));
                        num4 = Conversions.ToInteger(str3);
                        num5 = Conversions.ToInteger(str4);
                        num4 = Convert.ToInt32(Math.Truncate(new decimal(num4)));
                        num5 = Convert.ToInt32(Math.Truncate(new decimal(num5)));
                        Dead.lastalivex = num4;
                        Dead.lastalivey = num5;
                        face(Conversions.ToSingle(calculface(num4, num5)));
                        func.logmsg("[BOT] Going to waypoint : X = " + num4.ToString() + " Y = " + num5.ToString());
                        str = "running";
                        int num6 = (int) Math.Round((double) (num4 - Conversions.ToDouble(MyProject.Forms.Main.Label15.Text)));
                        int num7 = (int) Math.Round((double) (num5 - Conversions.ToDouble(MyProject.Forms.Main.Label16.Text)));
                        int num3 = (int) Math.Round(Math.Truncate(Math.Sqrt(Math.Pow((double) num6, 2.0) + Math.Pow((double) num7, 2.0))));
                        if ((Main.havetarget == 0) && (testroute == 0))
                        {
                            if (num3 < Conversions.ToDouble(MyProject.Forms.Config.MaxWaypointDistance.Text))
                            {
                                targetting();
                                face(Conversions.ToSingle(calculface(num4, num5)));
                            }
                            else
                            {
                                func.logmsg("[BOT] Je suis trop loin du waypoint pour cibler");
                            }
                        }
                        while (str == "running")
                        {
                            func.oldWait(1);
                            Clavier.GaucheUp();
                            Clavier.DroiteUp();
                            Clavier.AvancerDown();
                            if (Main.facingtimerval == 1)
                            {
                                face(Conversions.ToSingle(calculface(num4, num5)));
                                Main.facingtimerval = 0;
                            }
                            if ((Main.havetarget == 0) && (testroute == 0))
                            {
                                num6 = (int) Math.Round((double) (num4 - Conversions.ToDouble(MyProject.Forms.Main.Label15.Text)));
                                num7 = (int) Math.Round((double) (num5 - Conversions.ToDouble(MyProject.Forms.Main.Label16.Text)));
                                num3 = (int) Math.Round(Math.Truncate(Math.Sqrt(Math.Pow((double) num6, 2.0) + Math.Pow((double) num7, 2.0))));
                                if (num3 < Conversions.ToDouble(MyProject.Forms.Config.MaxWaypointDistance.Text))
                                {
                                    targetting();
                                    face(Conversions.ToSingle(calculface(num4, num5)));
                                }
                                else
                                {
                                    func.logmsg("[BOT] Je suis trop loin du waypoint pour cibler");
                                }
                            }
                            if ((((Conversions.ToDouble(MyProject.Forms.Main.Label15.Text) > (num4 - 4)) & (Conversions.ToDouble(MyProject.Forms.Main.Label15.Text) < (num4 + 4))) & (Conversions.ToDouble(MyProject.Forms.Main.Label16.Text) > (num5 - 4))) & (Conversions.ToDouble(MyProject.Forms.Main.Label16.Text) < (num5 + 4)))
                            {
                                Clavier.GaucheUp();
                                Clavier.DroiteUp();
                                str = "normal";
                                goto Label_072D;
                            }
                            if (Conversions.ToDouble(MyProject.Forms.Main.PlayerHealth.Text) < TimerForm.checkhealthwalkval)
                            {
                                func.logmsg("[BOT] OMFG Je perd de la vie !");
                                combat();
                            }
                            if (Main.havetarget == 1)
                            {
                                combat();
                            }
                        }
                    }
                    catch (Exception exception1)
                    {
                        ProjectData.SetProjectError(exception1);
                        Exception exception = exception1;
                        ProjectData.ClearProjectError();
                    }
                Label_072D:
                    index++;
                }
                Clavier.GaucheUp();
                Clavier.DroiteUp();
                Clavier.AvancerUp();
                func.logmsg("[BOT] Arriv\x00e9 au dernier waypoint");
                lastwaypoint = 1;
                func.oldWait(50);
                func.logmsg("[BOT] Prenons le premier waypoint");
                if (MyProject.Forms.Main.ShrinkWoW.Visible)
                {
                    walkwaypoint();
                }
            }
            walkwaypoint();
            return 0;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -