SHOW:
|
|
- or go back to the newest paste.
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") ) |
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 | - | if(doodad.name.Contains("ein") && (doodad.dist(me)<20) &! doodad.name.Contains("Remnant") ) |
124 | + | |
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 | } |