Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- using System.Threading;
- using System.Collections.Generic;
- using System.Linq;
- using ArcheBuddy.Bot.Classes;
- namespace Follower
- {
- public class LazyRaider : Core
- {
- public static string GetPluginAuthor()
- {
- return "Ferum";
- }
- public static string GetPluginVersion()
- {
- return "0.1.0";
- }
- public static string GetPluginDescription()
- {
- return "LazyRaider for the DarkRunner Class";
- }
- public void UseSkillAndWait(string skillName, bool selfTarget = false)
- {
- //wait for cooldowns to finish first, before we try to cast skill
- while (me.isCasting || me.isGlobalCooldown)
- Thread.Sleep(50);
- if (!UseSkill(skillName, true, selfTarget))
- {
- if (me.target != null && GetLastError() == LastError.NoLineOfSight)
- {
- //No line of sight, try come to target.
- if (dist(me.target) <= 5)
- ComeTo(me.target, 2);
- else if (dist(me.target) <= 10)
- ComeTo(me.target, 3);
- else if (dist(me.target) < 20)
- ComeTo(me.target, 8);
- else
- ComeTo(me.target, 8);
- }
- }
- //wait for cooldown again, after we start cast skill
- while (me.isCasting || me.isGlobalCooldown)
- Thread.Sleep(50);
- }
- public void PluginRun()
- {
- while (true)
- {
- while (me.target == null)
- // while we have no target, this loop will make the bot do nothing, and he will check back every 50ms, to see if we have a target
- {
- Thread.Sleep(50);
- }
- while (me.target != null && isAttackable(me.target))
- // once we have a target, and this target is attackable (so its no NPC) the bot will jump into this loop.
- // this loops contains the "combat routine"
- {
- if (angle(me.target, me) > 45 && angle(me.target, me) < 315)
- // making sure we are faceing the target. If not, we will turn towards it
- {
- TurnDirectly(me.target);
- }
- // if(mpp(me) <=25)
- // {
- // UseSkill("Play Instrument", true, true);
- // Thread.Sleep(5000);
- //}
- if (dist(me.target) >= 12 || skillCooldown("Отравленная стрела") != 0)
- {
- ComeTo(me.target, 12);
- }
- if (skillCooldown("Энергитичский щит") == 0)
- {
- UseSkillAndWait("Энергитичский щит");
- Log("Used: Энергитичский щит");
- }
- if (skillCooldown("Адреналин") == 0)
- {
- UseSkillAndWait("Адреналин");
- Log("Used: Адреналин");
- }
- if (skillCooldown("Отравленная стрела") == 0)
- {
- UseSkillAndWait("Отравленная стрела");
- Log("Used: Отравленная стрела");
- if (skillCooldown("Метка преследователя") == 0)
- {
- UseSkillAndWait("Метка преследователя");
- Log("Used: Метка преследователя");
- if (skillCooldown("Бросок кобры") != 0)
- {
- UseSkillAndWait("Бросок кобры");
- Log("Used: Бросок кобры");
- }
- }
- }
- if (skillCooldown("Рывок") == 0)
- {
- UseSkillAndWait("Рывок");
- Log("Used: Рывок");
- }
- if (skillCooldown("Метка преследователя") == 0)
- {
- UseSkillAndWait("Метка преследователя");
- Log("Used: Метка преследователя");
- if (skillCooldown("Бросок кобры") != 0)
- {
- UseSkillAndWait("Бросок кобры");
- Log("Used: Бросок кобры");
- }
- }
- if (skillCooldown("Превосходство духа") == 0)
- {
- if (dist(me.target) >= 5)
- {
- ComeTo(me.target, 5);
- UseSkillAndWait("Превосходство духа");
- Log("Used: Превосходство духа");
- if (skillCooldown("Вихрь ударов") == 0 && dist(me.target) <= 5)
- {
- UseSkillAndWait("Вихрь ударов");
- Log("Used: Вихрь ударов");
- }
- }
- UseSkillAndWait("Превосходство духа");
- Log("Used: Превосходство духа");
- if (skillCooldown("Вихрь ударов") == 0 && dist(me.target) <= 5)
- {
- UseSkillAndWait("Вихрь ударов");
- Log("Used: Вихрь ударов");
- }
- }
- if (skillCooldown("Мясорубка") == 0)
- {
- UseSkillAndWait("Мясорубка");
- Log("Used: Мясорубка");
- }
- if (skillCooldown("Тройной удар") == 0)
- {
- for (int i = 0; i < 2; i++)
- UseSkillAndWait("Тройной удар");
- Log("Used: Тройной удар");
- }
- if (mpp(me) <= 20 && skillCooldown("Медитация") == 0)
- {
- UseSkillAndWait("Медитация");
- Log("Used: Медитация");
- Thread.Sleep(5000);
- }
- while (me.target != null && !isAlive(me.target) && me.target.dropAvailable && isAlive())
- // we check if we have a target, then check if this target is NOT alive. Then we look if its lootable and finaly whether we are alive or not.
- // if all this is true, we will move towards the target and get our loot.
- {
- if (me.dist(me.target) > 3)
- ComeTo(me.target, 1);
- PickupAllDrop(me.target);
- }
- // once we looted the target, and made sure its dead we will clear our target.
- if (me.target != null && !isAlive(me.target) && !me.target.dropAvailable)
- {
- CancelTarget();
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement