Yeah, make a Route, but Point "mine" where the mine is and a point where the monsters will lose the aggro and name it "Safe" in case u get lower than 80% of HP it will run to Safe Spot.Hey,
So how does that work ? Compile the plugin, then make a GPS route around where we want to mine ?
I'm trying to build my house right now, so this will come handy ! Thanks a lot !
Well that's quite risky. Not for the fact of botting there but you need a boat to do that. The boat will be in a PVP Zone and since ur botting if someone attacks you... yo are pretty much fked lol.Would an underwater mining bot be doable? Something that gathers Star Shard veins ?
Well that's quite risky. Not for the fact of botting there but you need a boat to do that. The boat will be in a PVP Zone and since ur botting if someone attacks you... yo are pretty much fked lol.
That's how the bot walks and how the bot works.thanks but it's very bad... why?
because it's slow and because it's skip fortuna veins and run to next like real retarded bot easy to spot that it's bot
i'm doing mining manually much better then this "bot"
Under an hour here and the camp is always full. You don't need to use the GPS tbh. It's optional.Tried using it but GPS is a bit too complex for me since I'm new to this whole stuff, really needed a miner plugin though even if it can only mine iron veins, my server is always full and mining 5k labor takes ages
how do I make the bot walk around for the iron vein though?Under an hour here and the camp is always full. You don't need to use the GPS tbh. It's optional.
The moment the bot detects and iron vein it will go to it. Start the bot in the middle of the mine and wait.how do I make the bot walk around for the iron vein though?
Tried it and does nothing, I press the green arrow and it goes from the red square back to the green arrow without doing a thing. (I mean, it instantly stops. I was in sundown mine.)The moment the bot detects and iron vein it will go to it. Start the bot in the middle of the mine and wait.
Change the name to the russian name? I will look into it though.Please do not ore mining by name "Iron Vein" and "Fortuna Vein", and on the ID. What would your plugin and could use the Russian people.
using System.Collections.Generic;
using ArcheBuddy.Bot.Classes;
using System.Windows.Forms;
using System;
using System.Threading;
namespace DefaultNameSpace
{
public class DefaultClass : Core
{
public static string GetPluginAuthor()
{
return "PoepieDoopie";
}
public static string GetPluginVersion()
{
return "0.1";
}
public static string GetPluginDescription()
{
return "Mining bot";
}
// The objects generated in the world
public List<DoodadObject> objects;
// The minable objects
public List<DoodadObject> ores;
public bool running = true;
//Call on plugin start
public void PluginRun()
{
Log("Loaded the plugin");
while (this.running)
{
this.objects = new List<DoodadObject>();
this.ores = new List<DoodadObject>();
Log("Lets see how many nodes we have found");
this.objects = getDoodads();
Log("Total Nodes found : " + this.objects.Count.ToString());
if (this.objects.Count > 0)
{
if(me.opPoints < 10)
{
this.running = false;
Log("We do not have enough labor points");
return;
}
foreach (DoodadObject obj in this.objects)
{
if (obj.id == 1671 && obj.uniqOwnerId == 0)
{
this.ores.Add(obj);
}
}
Log("We have " + this.ores.Count + " Veins to be gathered");
if (this.ores.Count <= 0)
{
this.running = false;
Log("There are no veins to be mined");
return;
}
while (this.ores.Count > 0 && me.opPoints > 10)
{
double distance = double.MaxValue;
DoodadObject selected = null;
foreach (DoodadObject ore in this.ores)
{
if (me.dist(ore) < distance)
{
distance = me.dist(ore);
selected = ore;
}
}
Log("Current closest ore is at : " + distance.ToString());
ComeTo(selected);
foreach (var skill in selected.getUseSkills())
{
while(selected != null)
{
// Is the ore still available
if(selected.uniqOwnerId == 0)
{
if(UseDoodadSkill(skill.id, selected, true, 0))
{
Log("We have mined the vein there are still " + this.ores.Count + " veins left in the area");
this.ores.Remove(selected);
Thread.Sleep(1000);
}
else
{
Log("Error we didn't mine the vein");
}
}
else
{
Log("Someone beat us to the vein");
this.ores.Remove(selected);
selected = null;
Thread.Sleep(100);
}
Log("Loop");
}
}
}
}
}
}
//Call on plugin stop
public void PluginStop()
{
}
}
}
The exact same issue currently. Using ID's will make my player mine 1 ore and then stop.Replacing the "Iron Vein" on Russian analogue of "Залежи железа" does not help, the script executes the route, and the ore is not producing.
Tried to use the following script, it is implemented by gathering ore id, but the script hangs after the first digging.
PHP:using System.Collections.Generic; using ArcheBuddy.Bot.Classes; using System.Windows.Forms; using System; using System.Threading; namespace DefaultNameSpace { public class DefaultClass : Core { public static string GetPluginAuthor() { return "PoepieDoopie"; } public static string GetPluginVersion() { return "0.1"; } public static string GetPluginDescription() { return "Mining bot"; } // The objects generated in the world public List<DoodadObject> objects; // The minable objects public List<DoodadObject> ores; public bool running = true; //Call on plugin start public void PluginRun() { Log("Loaded the plugin"); while (this.running) { this.objects = new List<DoodadObject>(); this.ores = new List<DoodadObject>(); Log("Lets see how many nodes we have found"); this.objects = getDoodads(); Log("Total Nodes found : " + this.objects.Count.ToString()); if (this.objects.Count > 0) { if(me.opPoints < 10) { this.running = false; Log("We do not have enough labor points"); return; } foreach (DoodadObject obj in this.objects) { if (obj.id == 1671 && obj.uniqOwnerId == 0) { this.ores.Add(obj); } } Log("We have " + this.ores.Count + " Veins to be gathered"); if (this.ores.Count <= 0) { this.running = false; Log("There are no veins to be mined"); return; } while (this.ores.Count > 0 && me.opPoints > 10) { double distance = double.MaxValue; DoodadObject selected = null; foreach (DoodadObject ore in this.ores) { if (me.dist(ore) < distance) { distance = me.dist(ore); selected = ore; } } Log("Current closest ore is at : " + distance.ToString()); ComeTo(selected); foreach (var skill in selected.getUseSkills()) { while(selected != null) { // Is the ore still available if(selected.uniqOwnerId == 0) { if(UseDoodadSkill(skill.id, selected, true, 0)) { Log("We have mined the vein there are still " + this.ores.Count + " veins left in the area"); this.ores.Remove(selected); Thread.Sleep(1000); } else { Log("Error we didn't mine the vein"); } } else { Log("Someone beat us to the vein"); this.ores.Remove(selected); selected = null; Thread.Sleep(100); } Log("Loop"); } } } } } } //Call on plugin stop public void PluginStop() { } } }
The exact same issue currently. Using ID's will make my player mine 1 ore and then stop.
No idea where. I guess I will have to leave it as it is sorry :C.
Even tested that Script and it does work A LOT faster than mine, coming from Poodie it's normal that it was gona be 9999999x times better than mine. Sad that AB freezes right after the first ore.
GPS is the same for all scripts.How do I set up gps with this? Can you explain in further detail? I'm really confused on what to label, etc...
GPS is the same for all scripts.
The only difference is how the Coder name their Spots. Poopie usually calls them Spot A and B. Other like to call them like "X WorkBench". In my case I have in the midle of the mine a Point called "Mine" which is where the script will take you right in the first line and another spot "Safe" which are 2 NPC Guardians that will kill following monsters. Since my script is incapable of Attacking back I made it so it would run away to Safe Zone the moment you have less than 80% of your HP.
If you have never setup a GPS Map or have doubts about how to name those points.
https://www.thebuddyforum.com/archebuddy-forum/archebuddy-guides/180837-gps-route-video.html