neto_rod

Untitled

Dec 5th, 2014
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.47 KB | None | 0 0
  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.Contains("Iron") && (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. }
  100. CheckAggro();
  101. Log(DateTime.Now.ToLongTimeString() + " : moving to start");
  102. gps.GpsMove("1");
  103. CheckAggro();
  104. Random rnd = new Random();
  105. int wait = rnd.Next(15,21);
  106. wait = wait*1000;
  107. Log(DateTime.Now.ToLongTimeString() + " : wait " + wait.ToString());
  108. Thread.Sleep(wait);
  109. CheckAggro();
  110. DoMineRun();
  111. }
  112. public bool Mine()
  113. {
  114. Log(DateTime.Now.ToLongTimeString() + " : looking for Iron Vein ; Fortune Vein");
  115. bool mined = false;
  116. List<DoodadObject> items = Sort(getDoodads());
  117. Log(DateTime.Now.ToLongTimeString() + " : founded " + items.Count);
  118. foreach(var doodad in items)
  119. {
  120. Log(DateTime.Now.ToLongTimeString() + " : " + doodad.name + " " + doodad.dist(me));
  121. }
  122. foreach(var doodad in items)
  123. {
  124. if(doodad.name.Contains("ein") && (doodad.dist(me)<20) &! doodad.name.Contains("Remnant") )
  125. {
  126. mined = true;
  127. Log(DateTime.Now.ToLongTimeString() + " : " + doodad.name + " " + doodad.id.ToString() + " " + doodad.dist(me));
  128. var skills = doodad.getUseSkills();
  129. double doodadCastDist = 0;
  130. if (skills.Count > 0)
  131. {
  132. if (doodadCastDist == 0)
  133. {
  134. Thread.Sleep(500);
  135. Log(DateTime.Now.ToLongTimeString() + " : mining");
  136. TurnDirectly(doodad);
  137. UseDoodadSkill(skills[0].id, doodad, true);
  138. }
  139. Thread.Sleep(1000);
  140. }
  141. }
  142. }
  143. return mined;
  144. }
  145.  
  146. public void CheckAggro()
  147. {
  148. Log(DateTime.Now.ToLongTimeString() + " : CheckAggro");
  149. if(getAggroMobs().Count > 0)
  150. {
  151. Log(DateTime.Now.ToLongTimeString() + " : " + getAggroMobs().Count.ToString());
  152. foreach(var obj in getAggroMobs())
  153. {
  154. Log(DateTime.Now.ToLongTimeString() + " : " + obj.name);
  155. SetTarget(obj);
  156. TurnDirectly(me.target);
  157. Log(DateTime.Now.ToLongTimeString() + " : fighting");
  158. while(obj.isAlive())
  159. {
  160. TurnDirectly(me.target);
  161. if(skillCooldown("Freezing Arrow")==0)
  162. {
  163. Log(DateTime.Now.ToLongTimeString() + " Freezing arrow");
  164. UseSkill("Freezing Arrow", false);
  165. Thread.Sleep(100);
  166. }
  167. else
  168. {
  169. if(skillCooldown("Crippling Mire")==0)
  170. {
  171. Log(DateTime.Now.ToLongTimeString() + " Crippling Mire");
  172. UseSkill("Crippling Mire",false);
  173. Thread.Sleep(100);
  174. }
  175. else
  176. {
  177. if(skillCooldown("Flamebolt")==0)
  178. {
  179. Log(DateTime.Now.ToLongTimeString() + " Flame Bolt");
  180. UseSkill("Flamebolt",false);
  181. Thread.Sleep(100);
  182. }
  183. }
  184. }
  185. if(!obj.inFight)
  186. return;
  187. }
  188. Log(DateTime.Now.ToLongTimeString() + " : fight is over");
  189. }
  190. }
  191. }
  192.  
  193. public void PluginStop()
  194. {
  195. }
  196. }
  197. }
Advertisement
Add Comment
Please, Sign In to add comment