Guest User

Untitled

a guest
Dec 18th, 2014
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Drawing;
  3. using System.Threading;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using ArcheBuddy.Bot.Classes;
  7. using System.Windows.Forms;
  8. using System.Threading.Tasks;
  9. using System.Net;
  10. using System.IO;
  11. using System.Text;
  12. using System.ComponentModel;
  13.  
  14. namespace DefaultNameSpace{
  15. public class DefaultClass : Core
  16. {
  17. public static string GetPluginAuthor()
  18. {
  19. return "Gajda";
  20. }
  21.  
  22. public static string GetPluginVersion()
  23. {
  24. return "1.3.0";
  25. }
  26.  
  27. public static string GetPluginDescription()
  28. {
  29. return "mining bot";
  30. }
  31. private Gps gps;
  32. //Call on plugin start
  33. public void PluginRun()
  34. {
  35. ClearLogs();
  36. Log(DateTime.Now.ToLongTimeString() + " : Start");
  37. gps = new Gps(this);
  38. gps.LoadDataBase(Application.StartupPath + "\\Plugins\\Mining\\mine.db3");
  39. DoMineRun();
  40.  
  41. }
  42.  
  43. public List<DoodadObject> Sort(List<DoodadObject> tempitems)
  44. {
  45. Log(DateTime.Now.ToLongTimeString() + " : I see " + tempitems.Count + " items");
  46. List<DoodadObject> items = new List<DoodadObject>();
  47. for(int i=0;i<tempitems.Count;i++)
  48. {
  49. if(tempitems[i].name.EndsWith(" Vein") && (tempitems[i].dist(me)<20) && !tempitems[i].name.Contains("Remnant") )
  50. items.Add(tempitems[i]);
  51. }
  52. Log(DateTime.Now.ToLongTimeString() + " : I see " + items.Count + " usable item(s)");
  53. bool needSort = true;
  54. if(items.Count<2)
  55. needSort = false;
  56. int loop = 1;
  57. while(needSort)
  58. {
  59. Log(DateTime.Now.ToLongTimeString() + " : sorting run " + loop);
  60. bool changed = false;
  61. for(int i=0;i<items.Count-1;i++)
  62. {
  63.  
  64. if(items[i].dist(me)>items[i+1].dist(me))
  65. {
  66. var tempItem = items[i];
  67. items[i]=items[i+1];
  68. items[i+1]=tempItem;
  69. changed = true;
  70. }
  71. }
  72. if(changed==false)
  73. {
  74. needSort = false;
  75. }
  76. loop++ ;
  77. }
  78. return items;
  79. }
  80.  
  81. public void DoMineRun()
  82. {
  83. // i<11 is for route with 10 mining spots
  84. for(int i=1;i<14;i++)
  85. {
  86. CheckAggro();
  87. Log(DateTime.Now.ToLongTimeString() + " : movint to point " + i.ToString());
  88. UseSkill("Dash");
  89. while(!gps.GpsMove(i.ToString()))
  90. {
  91. Thread.Sleep(100);
  92. }
  93. Log(DateTime.Now.ToLongTimeString() + " : at point " + i.ToString());
  94. CheckAggro();
  95. while(Mine())
  96. {
  97. Thread.Sleep(100);
  98. }
  99. while(Mine())
  100. {
  101. Thread.Sleep(100);
  102. }
  103. }
  104. CheckAggro();
  105. Log(DateTime.Now.ToLongTimeString() + " : moving to start");
  106. gps.GpsMove("1");
  107. CheckAggro();
  108. Random rnd = new Random();
  109. int wait = rnd.Next(15,21);
  110. wait = wait*1000;
  111. Log(DateTime.Now.ToLongTimeString() + " : wait " + wait.ToString());
  112. Thread.Sleep(wait);
  113. CheckAggro();
  114. DoMineRun();
  115. }
  116. public bool Mine()
  117. {
  118. Log(DateTime.Now.ToLongTimeString() + " : looking for Iron Vein ; Fortune Vein");
  119. bool mined = false;
  120. List<DoodadObject> items = Sort(getDoodads());
  121. Log(DateTime.Now.ToLongTimeString() + " : founded " + items.Count);
  122. foreach(var doodad in items)
  123. {
  124. Log(DateTime.Now.ToLongTimeString() + " : " + doodad.name + " " + doodad.dist(me));
  125. }
  126. foreach(var doodad in items)
  127. {
  128. if(doodad.name.EndsWith(" Vein") && (doodad.dist(me)<20) &! doodad.name.Contains("Remnant") )
  129. {
  130. mined = true;
  131. Log(DateTime.Now.ToLongTimeString() + " : " + doodad.name + " " + doodad.id.ToString() + " " + doodad.dist(me));
  132. var skills = doodad.getUseSkills();
  133. double doodadCastDist = 0;
  134. if (skills.Count > 0)
  135. {
  136. if (doodadCastDist == 0)
  137. {
  138. Thread.Sleep(500);
  139. Log(DateTime.Now.ToLongTimeString() + " : mining");
  140. TurnDirectly(doodad);
  141. UseDoodadSkill(skills[0].id, doodad, true);
  142. }
  143. Thread.Sleep(1000);
  144. }
  145. }
  146. }
  147. return mined;
  148. }
  149.  
  150. public void CheckAggro()
  151. {
  152. Log(DateTime.Now.ToLongTimeString() + " : CheckAggro");
  153. if(getAggroMobs().Count > 0)
  154. {
  155. Log(DateTime.Now.ToLongTimeString() + " : " + getAggroMobs().Count.ToString());
  156. foreach(var obj in getAggroMobs())
  157. {
  158. Log(DateTime.Now.ToLongTimeString() + " : " + obj.name);
  159. SetTarget(obj);
  160. TurnDirectly(me.target);
  161. Log(DateTime.Now.ToLongTimeString() + " : fighting");
  162. while(obj.isAlive())
  163. {
  164. TurnDirectly(me.target);
  165. if(skillCooldown("Freezing Arrow")==0)
  166. {
  167. Log(DateTime.Now.ToLongTimeString() + " Freezing arrow");
  168. UseSkill("Freezing Arrow", false);
  169. Thread.Sleep(100);
  170. }
  171. else
  172. {
  173. if(skillCooldown("Crippling Mire")==0)
  174. {
  175. Log(DateTime.Now.ToLongTimeString() + " Crippling Mire");
  176. UseSkill("Crippling Mire",false);
  177. Thread.Sleep(100);
  178. }
  179. else
  180. {
  181. if(skillCooldown("Flamebolt")==0)
  182. {
  183. Log(DateTime.Now.ToLongTimeString() + " Flame Bolt");
  184. UseSkill("Flamebolt",false);
  185. Thread.Sleep(100);
  186. }
  187. }
  188. }
  189. if(!obj.inFight)
  190. return;
  191. }
  192. Log(DateTime.Now.ToLongTimeString() + " : fight is over");
  193. }
  194. }
  195. }
  196.  
  197. public void PluginStop()
  198. {
  199. }
  200. }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment