What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

[Plugin] Simple Miner

Народ, подскажите как этот скрипт под русскую версию переделать? Меняю "Iron Vein" на "Залежи железа" и бот ни как не реагирует, хотя при замене названий боевых скиллов всё норм пашут.
 
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 !
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.
 
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.
 
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.

Thanks!

I wasn't sure what underwater mining was all about, didn't know it was in a pvp zone =)
 
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"
 
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"
That's how the bot walks and how the bot works.

I did a seperate plugin that would avoid Iron Veins if there was a Furtuna and it wouldn't go there. Duno what's the problem with the bot avoiding it.
There's nothing that can be done to avoid that.

But you are free to complain and do one yourself since it's "VERY BAD". Though you have released 0 Plugins and 0 coding experience posts, so I guess you have No idea how AB actually works, thereby you complain. Good Work, humanity is full of people like you. Complains Complains but can't do crap.

EDIT: I might have to remember you to check the Source Code and the title "SIMPLE Miner" and you can obviously see that I'm giving priority to Fortuna Over Iron veins.
 
Last edited:
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
 
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
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.
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.)
 
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.
 
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.
Change the name to the russian name? I will look into it though.

EDIT: Impossible. Iron Veins ID is not on ArcheAgeDatabase.
EDIT2: Found ID's Testing
 
Last edited:
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()
        {

        }
    }
}
 
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 Poopie it's normal that it was gona be 9999999x times better than mine. Sad that AB freezes right after the first ore.
 
Last edited:
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.

Hehe that was a doodle. dunno how good it works :P
 
How do I set up gps with this? Can you explain in further detail? I'm really confused on what to label, etc...
 
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
 
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

Yeah, I know how to make a gps :) So do make a path around the mine? Or just a point "a" for center of mine and point "b" for the safe zone, so it's just 1 line from point a to point b? Also does this work at all mines, or would only glitterstone work? Thanks for the response :)
 
Back
Top