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

Mining Plugin

blaze

Member
Joined
Sep 17, 2014
Messages
66
Reaction score
0
Hello, so they putted that new "Unidentified Vein" and the mining plugin it's trying to mine that but the char doesn't have the proficiency so he waits 10min there

if (doodadCastDist == 0 && doodad.name.Contains("Unidentified", StringComparison.OrdinalIgnoreCase))

so I thought of this but it's seems that it's not working

Code:
using System;
using System.Drawing;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using ArcheBuddy.Bot.Classes;
using System.Windows.Forms;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Text;
using System.ComponentModel;

namespace DefaultNameSpace{
   public class DefaultClass : Core
   {
       public static string GetPluginAuthor()
       {
           return "Gajda";
       }

       public static string GetPluginVersion()
       {
           return "1.3.0";
       }

       public static string GetPluginDescription()
       {
           return "mining bot";
       }
       private Gps gps; 
       //Call on plugin start
       public void PluginRun()
       {
           ClearLogs();
           Log(DateTime.Now.ToLongTimeString() + " : Start");
           gps = new Gps(this); 
			gps.LoadDataBase(Application.StartupPath + "\\Plugins\\EzMiner\\EzMinerRoute.db3");
           DoMineRun();
           
       }            
       
       public List<DoodadObject> Sort(List<DoodadObject> tempitems)
       {    
           Log(DateTime.Now.ToLongTimeString() + " : I see " + tempitems.Count + " items");   
           List<DoodadObject> items = new List<DoodadObject>();
           for(int i=0;i<tempitems.Count;i++)
           {
                if(tempitems[i].name.Contains("ein") && (tempitems[i].dist(me)<20) &! tempitems[i].name.Contains("Remnant") )
                    items.Add(tempitems[i]);
           }
            Log(DateTime.Now.ToLongTimeString() + " : I see " + items.Count + " usable  item(s)");   
           bool needSort = true;
           if(items.Count<2)
               needSort = false;
           int loop      = 1;
           while(needSort)
           {   
               Log(DateTime.Now.ToLongTimeString() + " : sorting run " + loop);
               bool changed = false;
               for(int i=0;i<items.Count-1;i++)
               {                         
                   
                   if(items[i].dist(me)>items[i+1].dist(me))
                   {                          
                       var tempItem = items[i]; 
                       items[i]=items[i+1];
                       items[i+1]=tempItem;
                       changed = true;
                   }                   
               }
               if(changed==false)
               {
                   needSort = false;
               }
               loop++ ;
           }   
           return   items;
       }
       
       public void DoMineRun()
      {         
		if (me.laborPoints > 10){
			// i<11 is for route with 10 mining spots
			for(int i=1;i<35;i++){
			//for(int i=1;i<67;i++)
				CheckAggro();
				Log(DateTime.Now.ToLongTimeString() + " : movint to point " + i.ToString());
				UseSkill("Dash");
				while(!gps.GpsMove(i.ToString())){
					Thread.Sleep(100);
				}
				Log(DateTime.Now.ToLongTimeString() + " : at point " + i.ToString());
				CheckAggro();
				while(Mine()){
					Thread.Sleep(100);
				}
			}
		}else{
			TerminateGameClient();
			Thread.Sleep(1000);
		}
		CheckAggro();
		Log(DateTime.Now.ToLongTimeString() + " : moving to start");
		gps.GpsMove("1");                                      
		CheckAggro();            
		Random rnd = new Random();
		int wait   = rnd.Next(150,210);  
		wait       = wait*1000;
		Log(DateTime.Now.ToLongTimeString() + " : wait " + wait.ToString());
		Thread.Sleep(wait);           
		CheckAggro();
		DoMineRun();
      }
       public bool Mine()
       {            
           Log(DateTime.Now.ToLongTimeString() + " : looking for veins");
           bool mined = false;
           List<DoodadObject> items = Sort(getDoodads());
           Log(DateTime.Now.ToLongTimeString() + " : founded " + items.Count);
           foreach(var doodad in items)
           {
               Log(DateTime.Now.ToLongTimeString() +  " :      " + doodad.name + "  " + doodad.dist(me));  
           }
           foreach(var doodad in items)
           {               
               if(doodad.name.Contains("ein") && (doodad.dist(me)<20) &! doodad.name.Contains("Remnant") )
               {             
                   mined = true;
                   Log(DateTime.Now.ToLongTimeString() +  " : " + doodad.name + " " + doodad.id.ToString() + "  " + doodad.dist(me));     
                   var skills            = doodad.getUseSkills(); 
                   double doodadCastDist = 0;
                    if (skills.Count > 0)
                    {
                        if (doodadCastDist == 0 && doodad.name.Contains("Unidentified", StringComparison.OrdinalIgnoreCase))  
                        {
                            Thread.Sleep(500);
                            Log(DateTime.Now.ToLongTimeString() + " : mining");
                            TurnDirectly(doodad);
                            UseDoodadSkill(skills[0].id, doodad, true);
                        }
                        Thread.Sleep(1000);
                    }
                }     
            }
            return mined;
       }
  
        public void CheckAggro()
        {                     
            Log(DateTime.Now.ToLongTimeString() + " : CheckAggro");
            if(getAggroMobs().Count > 0)
            {         
                Log(DateTime.Now.ToLongTimeString() + " : " + getAggroMobs().Count.ToString());
                foreach(var obj in  getAggroMobs())
                {   
                    Log(DateTime.Now.ToLongTimeString() + " : " + obj.name);    
                    SetTarget(obj);
                    TurnDirectly(me.target);
                    Log(DateTime.Now.ToLongTimeString() + " : fighting");
                    while(obj.isAlive())
                    {        
                        TurnDirectly(me.target);
                        /*if(skillCooldown("Triple Slash")==0)
                        {
                            Log(DateTime.Now.ToLongTimeString() + " Triple Slash"); 
                            UseSkill("Triple Slash", false);
                            Thread.Sleep(100);
                        }*/
						if(skillCooldown("Flamebolt")==0)
                        {
                            Log(DateTime.Now.ToLongTimeString() + " Flamebolt"); 
                            UseSkill("Flamebolt", false);
                            Thread.Sleep(100);
                        }
                        else
                        {
							/*if(skillCooldown("Charge")==0)
                            {
                                    Log(DateTime.Now.ToLongTimeString() + " Charge"); 
									UseSkill("Charge",false);
                                    Thread.Sleep(100);
                            }*/
							if(skillCooldown("Freezing Arrow")==0)
                            {
                                    Log(DateTime.Now.ToLongTimeString() + " Freezing Arrow"); 
									UseSkill("Freezing Arrow",false);
                                    Thread.Sleep(100);
                            }
                            else
                            { 
                                /*if(skillCooldown("Tiger Strike")==0)  
                                {    
                                    Log(DateTime.Now.ToLongTimeString() + " Tiger Strike"); 
                                    UseSkill("Tiger Strike",false);
                                    Thread.Sleep(100);
                                }*/
                                if(skillCooldown("Hell Spear")==0)  
                                {    
                                    Log(DateTime.Now.ToLongTimeString() + " Hell Spear"); 
                                    UseSkill("Hell Spear",false);
                                    Thread.Sleep(100);
                                }
                            }
                        }
                        if(!obj.inFight)
                            return;
                    }
                    Log(DateTime.Now.ToLongTimeString() + " : fight is over");
                }
            } 
        }        
       
       public void PluginStop()
       {
       }
   }
}
 
Aeon's mining plugin works perfect. So maybe try and contact him.
 
Are you sure even with the new mines that appear??
Can you give me a link?
 
Are you sure even with the new mines that appear??
Can you give me a link?

Yes im sure. There's a box that you can check if u want to mine it or not.

Dont be lazy. Its under the buddystore, just go there.
 
Back
Top