SHOW:
|
|
- or go back to the newest paste.
| 1 | using System; | |
| 2 | using System.Collections.Generic; | |
| 3 | using System.Linq; | |
| 4 | using System.Text; | |
| 5 | using System.Threading; | |
| 6 | ||
| 7 | using D3; | |
| 8 | using rndWalker.Common; | |
| 9 | using rndWalker.Bots; | |
| 10 | ||
| 11 | ||
| 12 | ||
| 13 | namespace rndWalker {
| |
| 14 | class rndWalker {
| |
| 15 | public static rndWalker Instance { get; set; }
| |
| 16 | private Thread thread; | |
| 17 | private Thread guardian; | |
| 18 | private Logger logger; | |
| 19 | private int gameCounter = 0; | |
| 20 | private Bot bot; | |
| 21 | private int run_start = 0; | |
| 22 | ||
| 23 | const int SECONDS_BEFORE_RESTART = 70; | |
| 24 | public static UIElement[] _elements = UIElement.Get(); | |
| 25 | ||
| 26 | public rndWalker() {
| |
| 27 | this.thread = new Thread(this.ExecutingThread); | |
| 28 | this.guardian = new Thread(this.GuardianThread); | |
| 29 | this.logger = new Logger("rndWalker");
| |
| 30 | ||
| 31 | Game.OnTickEvent += new TickEventHandler(Game_OnTickEvent); | |
| 32 | } | |
| 33 | ||
| 34 | void Game_OnTickEvent(EventArgs e) {
| |
| 35 | _elements = UIElement.Get(); | |
| 36 | ||
| 37 | if (Game.Ingame) {
| |
| 38 | if (/*Me.WorldId != 0xFFFFFFFF &&*/ Me.WorldId != 0 && Me.Life == 0) {
| |
| 39 | Console.WriteLine("I died! Exitting game");
| |
| 40 | Bot.ExitGame(); | |
| 41 | // hard reset | |
| 42 | rndWalker.Instance.Restart(); | |
| 43 | } | |
| 44 | } | |
| 45 | } | |
| 46 | ||
| 47 | public void Start() {
| |
| 48 | this.thread.Start(); | |
| 49 | this.guardian.Start(); | |
| 50 | } | |
| 51 | ||
| 52 | public void Stop() {
| |
| 53 | this.thread.Abort(); | |
| 54 | this.guardian.Abort(); | |
| 55 | } | |
| 56 | ||
| 57 | public void Restart() {
| |
| 58 | this.thread.Abort(); | |
| 59 | this.thread = new Thread(this.ExecutingThread); | |
| 60 | this.thread.Start(); | |
| 61 | } | |
| 62 | ||
| 63 | private void GuardianThread() {
| |
| 64 | while (true) | |
| 65 | {
| |
| 66 | Thread.Sleep(5000); | |
| 67 | if ((System.Environment.TickCount - run_start) / 1000 > SECONDS_BEFORE_RESTART && bot != null) | |
| 68 | {
| |
| 69 | bot = null; | |
| 70 | Restart(); | |
| 71 | } | |
| 72 | } | |
| 73 | } | |
| 74 | ||
| 75 | private void ExecutingThread() {
| |
| 76 | Thread.Sleep(500); | |
| 77 | ||
| 78 | ||
| 79 | ||
| 80 | ||
| 81 | ||
| 82 | ||
| 83 | ||
| 84 | ||
| 85 | ||
| 86 | bot = new RoyalCryptsMinions(); | |
| 87 | //bot = new Sarkoth(); | |
| 88 | //bot = new a4chest(); | |
| 89 | ||
| 90 | ||
| 91 | ||
| 92 | while (true) {
| |
| 93 | Thread.Sleep(1000); | |
| 94 | ||
| 95 | ||
| 96 | int start = System.Environment.TickCount; | |
| 97 | run_start = start; | |
| 98 | ||
| 99 | try {
| |
| 100 | bot.Execute(); | |
| 101 | Thread.Sleep(5000); | |
| 102 | } catch (Exception e) {
| |
| 103 | this.logger.Log(e); | |
| 104 | //ExitGame(); | |
| 105 | } | |
| 106 | ||
| 107 | int diff = System.Environment.TickCount - start; | |
| 108 | ||
| 109 | Game.Print(string.Format("Run took {0} seconds. Total Runs: {1}", diff / 1000, (gameCounter++)));
| |
| 110 | Thread.Sleep(3000); | |
| 111 | } | |
| 112 | } | |
| 113 | } | |
| 114 | } |