Mordark
Community Developer
- Joined
- Mar 31, 2014
- Messages
- 291
- Reaction score
- 4
I've dabbled a bit with a Daggerspell and thought I'd share what I have so far.
This plugin will:
Build:
ArcheAge Builder - Arche-Base
The Gladiator Edition, will fight anyone/anything NOT in your party.
Standard Edition:
Gladiator Edition:
Tips are greatly appreciated:
This plugin will:
- never move on its own
- never loot any mob(s)
- clear the target if it did NOT drop loot
- cast combos
- cast the Bubble Trap Combo (detects Bubble Trap Buff)
- Play Dead for 30 seconds if HP goes below 33%
- heal if HP goes below 75% using Enervate and Earthen Grip
Build:
ArcheAge Builder - Arche-Base
The Gladiator Edition, will fight anyone/anything NOT in your party.
Standard Edition:
Code:
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 Fight4Me : Core
{
public static string GetPluginAuthor()
{
return "Mordark";
}
public static string GetPluginVersion()
{
return "0.1.0";
}
public static string GetPluginDescription()
{
return "Fight4Me for Daggerspells";
}
public void UseSkillAndWait(string skillName, bool selfTarget = false)
{
while (me.isCasting || me.isGlobalCooldown)
{
Thread.Sleep(50);
}
if (!UseSkill(skillName, false, selfTarget))
{
while (me.isCasting || me.isGlobalCooldown)
{
Thread.Sleep(50);
}
}
while (getBuff("No Fight") != null)
{
Thread.Sleep(50);
}
}
public void PluginRun()
{
while (true)
{
while (me.target == null)
{
Thread.Sleep(50);
}
while (me.target != null && dist(me.target) < 25)
{
if(isAttackable(me.target) && isEnemy(me.target))
{
do
{
if (angle(me.target, me) > 45 && angle(me.target, me) < 315)
{
TurnDirectly(me.target);
}
if(hpp() < 33 && isSkillLearned("Play Dead") && skillCooldown("Play Dead") == 0)
{
Thread.Sleep(500);
UseSkillAndWait("Play Dead");
CancelTarget();
Log("Casting Play Dead! Going to play it safe for 30s. Time: " + DateTime.Now.ToString("h:mm:ss tt"));
Thread.Sleep(30000);
Log("Resuming, the time is: " + DateTime.Now.ToString("h:mm:ss tt"));
}
if(hpp(me) <= 75 && skillCooldown("Enervate") == 0 && skillCooldown("Earthen Grip") == 0)
{
Thread.Sleep(1000);
UseSkillAndWait("Enervate");
Thread.Sleep(100);
UseSkillAndWait("Earthen Grip");
Thread.Sleep(50);
}
if(dist(me.target) <= 3 && skillCooldown("Overwhelm") == 0 && skillCooldown("Drop Back") == 0)
{
UseSkillAndWait("Overwhelm");
Log("Used: Overwhelm");
Thread.Sleep(50);
if(me.target != null && isAlive(me.target))
{
UseSkillAndWait("Freezing Earth");
Log("Used: Freezing Earth");
Thread.Sleep(50);
}
if(me.target != null && isAlive(me.target))
{
UseSkillAndWait("Drop Back");
Log("Used: Drop Back");
Thread.Sleep(50);
}
if(getBuff("drop back") != null && skillCooldown("Enervate") == 0 && skillCooldown("Earthen Grip") == 0)
{
UseSkillAndWait("Enervate");
Thread.Sleep(50);
UseSkillAndWait("Earthen Grip");
Thread.Sleep(50);
}
}
if (skillCooldown("Freezing Arrow") == 0)
{
UseSkillAndWait("Freezing Arrow");
Log("Used: Freezing Arrow");
Thread.Sleep(100);
}
if (skillCooldown("Flamebolt") == 0)
{
UseSkillAndWait("Flamebolt");
Log("Used: Flamebolt");
Thread.Sleep(100);
}
if (skillCooldown("Bubble Trap") == 0 && skillCooldown("Flamebolt") == 0 && dist(me.target) <= 20)
{
UseSkillAndWait("Flamebolt");
Thread.Sleep(10);
Log("Used: BT Flamebolt");
if (me.target != null && isAlive(me.target) && skillCooldown("Bubble Trap") == 0 && dist(me.target) <= 20)
{
UseSkillAndWait("Bubble Trap");
Log("Used: Bubble Trap Combo");
if (me.target != null && isAlive(me.target) && skillCooldown("Arc Lightning") == 0 && skillCooldown("Bubble Trap") != 0 && getBuff(me.target, "Bubble Trap") != null)
{
Thread.Sleep(7000);
UseSkillAndWait("Arc Lightning");
Log("Used: Arc Lightning");
Thread.Sleep(100);
}
}
}
}while(me.target != null && isAlive(me.target));
if (me.target != null && !isAlive(me.target) && !me.target.dropAvailable)
{
CancelTarget();
}
}
}
}
}
}
}
Gladiator Edition:
Code:
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 Fight4Me : Core
{
public static string GetPluginAuthor()
{
return "Mordark";
}
public static string GetPluginVersion()
{
return "0.1.0";
}
public static string GetPluginDescription()
{
return "Fight4Me for Daggerspells";
}
public void UseSkillAndWait(string skillName, bool selfTarget = false)
{
while (me.isCasting || me.isGlobalCooldown)
{
Thread.Sleep(50);
}
if (!UseSkill(skillName, false, selfTarget))
{
while (me.isCasting || me.isGlobalCooldown)
{
Thread.Sleep(50);
}
}
while (getBuff("No Fight") != null)
{
Thread.Sleep(50);
}
}
public void PluginRun()
{
while (true)
{
while (me.target == null)
{
Thread.Sleep(50);
}
while (me.target != null && dist(me.target) < 25)
{
if(!isInMyPartyGroup(me.target))
{
do
{
if (angle(me.target, me) > 45 && angle(me.target, me) < 315)
{
TurnDirectly(me.target);
}
if(hpp() < 33 && isSkillLearned("Play Dead") && skillCooldown("Play Dead") == 0)
{
Thread.Sleep(500);
UseSkillAndWait("Play Dead");
CancelTarget();
Log("Casting Play Dead! Going to play it safe for 30s. Time: " + DateTime.Now.ToString("h:mm:ss tt"));
Thread.Sleep(30000);
Log("Resuming, the time is: " + DateTime.Now.ToString("h:mm:ss tt"));
}
if(hpp(me) <= 75 && skillCooldown("Enervate") == 0 && skillCooldown("Earthen Grip") == 0)
{
Thread.Sleep(1000);
UseSkillAndWait("Enervate");
Thread.Sleep(100);
UseSkillAndWait("Earthen Grip");
Thread.Sleep(50);
}
if(dist(me.target) <= 3 && skillCooldown("Overwhelm") == 0 && skillCooldown("Drop Back") == 0)
{
UseSkillAndWait("Overwhelm");
Log("Used: Overwhelm");
Thread.Sleep(50);
if(me.target != null && isAlive(me.target))
{
UseSkillAndWait("Freezing Earth");
Log("Used: Freezing Earth");
Thread.Sleep(50);
}
if(me.target != null && isAlive(me.target))
{
UseSkillAndWait("Drop Back");
Log("Used: Drop Back");
Thread.Sleep(50);
}
if(getBuff("drop back") != null && skillCooldown("Enervate") == 0 && skillCooldown("Earthen Grip") == 0)
{
UseSkillAndWait("Enervate");
Thread.Sleep(50);
UseSkillAndWait("Earthen Grip");
Thread.Sleep(50);
}
}
if (skillCooldown("Freezing Arrow") == 0)
{
UseSkillAndWait("Freezing Arrow");
Log("Used: Freezing Arrow");
Thread.Sleep(100);
}
if (skillCooldown("Flamebolt") == 0)
{
UseSkillAndWait("Flamebolt");
Log("Used: Flamebolt");
Thread.Sleep(100);
}
if (skillCooldown("Bubble Trap") == 0 && skillCooldown("Flamebolt") == 0 && dist(me.target) <= 20)
{
UseSkillAndWait("Flamebolt");
Thread.Sleep(10);
Log("Used: BT Flamebolt");
if (me.target != null && isAlive(me.target) && skillCooldown("Bubble Trap") == 0 && dist(me.target) <= 20)
{
UseSkillAndWait("Bubble Trap");
Log("Used: Bubble Trap Combo");
if (me.target != null && isAlive(me.target) && skillCooldown("Arc Lightning") == 0 && skillCooldown("Bubble Trap") != 0 && getBuff(me.target, "Bubble Trap") != null)
{
Thread.Sleep(7000);
UseSkillAndWait("Arc Lightning");
Log("Used: Arc Lightning");
Thread.Sleep(100);
}
}
}
}while(me.target != null && isAlive(me.target));
if (me.target != null && !isAlive(me.target) && !me.target.dropAvailable)
{
CancelTarget();
}
}
}
}
}
}
}
Tips are greatly appreciated:

Last edited: