Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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\\Mining\\mine.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.EndsWith(" Vein") && (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()
- {
- // i<11 is for route with 10 mining spots
- for(int i=1;i<14;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);
- }
- while(Mine())
- {
- Thread.Sleep(100);
- }
- }
- CheckAggro();
- Log(DateTime.Now.ToLongTimeString() + " : moving to start");
- gps.GpsMove("1");
- CheckAggro();
- Random rnd = new Random();
- int wait = rnd.Next(15,21);
- wait = wait*1000;
- Log(DateTime.Now.ToLongTimeString() + " : wait " + wait.ToString());
- Thread.Sleep(wait);
- CheckAggro();
- DoMineRun();
- }
- public bool Mine()
- {
- Log(DateTime.Now.ToLongTimeString() + " : looking for Iron Vein ; Fortune Vein");
- 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.EndsWith(" Vein") && (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)
- {
- 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("Freezing Arrow")==0)
- {
- Log(DateTime.Now.ToLongTimeString() + " Freezing arrow");
- UseSkill("Freezing Arrow", false);
- Thread.Sleep(100);
- }
- else
- {
- if(skillCooldown("Crippling Mire")==0)
- {
- Log(DateTime.Now.ToLongTimeString() + " Crippling Mire");
- UseSkill("Crippling Mire",false);
- Thread.Sleep(100);
- }
- else
- {
- if(skillCooldown("Flamebolt")==0)
- {
- Log(DateTime.Now.ToLongTimeString() + " Flame Bolt");
- UseSkill("Flamebolt",false);
- Thread.Sleep(100);
- }
- }
- }
- if(!obj.inFight)
- return;
- }
- Log(DateTime.Now.ToLongTimeString() + " : fight is over");
- }
- }
- }
- public void PluginStop()
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment