Hey all, this is my first release ever.. it's something super simple and very effective.. to use to start out with at level 1
What It Does
Auto Face
Shoot Arrow
Charged Bolt
Piercing Shot
Auto Loot if Possible
Good to Use up to level 1-10
HOW TO USE >CLICKHERE<
What It Does
Auto Face
Shoot Arrow
Charged Bolt
Piercing Shot
Auto Loot if Possible
Good to Use up to level 1-10
HOW TO USE >CLICKHERE<
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 "Detk0rd";
}
public static string GetPluginVersion()
{
return "0.1";
}
public static string GetPluginDescription()
{
return "Simple Lazy Rider for Archery based classes";
}
public void UseSkillAndWait(string skillName, bool selfTarget = false)
{
//Wait for the cooldowns to finish , before we try to case a single spell/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 coming tot he 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 amke the bot do nothing, and he will check back every 60 ms, to see if we have a target)
{
Thread.Sleep(50);
while(me.target != null && isAttackable(me.target))
//once we have the target, and this target is attackable (so its not an npc) the bot will jump into the loop below)
//this loop contains the combat routine
{
if (angle(me.target, me) > 45 && angle(me.target, me) < 315)
//making sure we are facing the target.
{
TurnDirectly(me.target);
}
if (skillCooldown("Charged Bolt") == 0)
// casting "Charged Bolt" if not on cd
{
UseSkill("Charged Bolt", true);
Thread.Sleep(50);
}
if (skillCooldown("Charged Bolt") != 0)
// if "Charged bolt is on cool down use Piercing shot
{
for (int i=0;i<2;i++)
UseSkillAndWait("Piercing Shot");
}
if (skillCooldown("Piercing Shot") == 0)
// casting "Piercing Shot" if not on cd
{
UseSkill("Piecing Shot", true);
Thread.Sleep(50);
}
if (skillCooldown("Piercing Bolt") != 0)
// if "Piercing Shot"
{
for (int i=0;i<2;i++)
UseSkillAndWait("Shoot Arrow");
}
if (skillCooldown("Shoot Arrow") == 0)
// casting "Shoot arrow" if not on cd
{
UseSkill("Shoot Arrow", true);
Thread.Sleep(50);
}
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();
}
}
}
}
}
}
}
ANY INPUT would be nice, I am very new to this, but I am dedicated to learn, Thank you!
Credits go to: OUT/Nick1988
Current Version : 0.1
--Initial Release--
--Initial Release--