示例#1
0
 public static void killAll()
 {
     for (int vm = 0; vm < processes.Length; vm++)
     {
         MEmuManager.killVM(vm);
     }
 }
示例#2
0
 private void btnStart_Click(object sender, EventArgs e)
 {
     foreach (ListViewItem item in lstMEmuProfiles.Items)
     {
         if (item.Checked)
         {
             MEmuManager.setAllowedVMs(item.SubItems[1].Text);
         }
     }
     MEmuManager.setMaxInstances(int.Parse(txtNoInstances.Text));
     Settings.duration   = int.Parse(this.txtTimeOnAccount.Text);
     Settings.hiveCoordK = this.txtKCoord.Text;
     Settings.hiveCoordX = this.txtXCoord.Text;
     Settings.hiveCoordY = this.txtYCoord.Text;
     Settings.namePrefix = this.txtAccountName.Text;
     Settings.guildName  = this.txtGuildName.Text;
     Settings.maxVMs     = int.Parse(this.txtNoInstances.Text);
     if (Settings.maxVMs > MEmuManager.getAllowedVMs().Count)
     {
         Settings.maxVMs = MEmuManager.getAllowedVMs().Count;
     }
     Settings.maxArchers     = int.Parse(this.txtArchers.Text);
     Settings.maxGrunts      = int.Parse(this.txtGrunts.Text);
     Settings.maxCataphracts = int.Parse(this.txtCataphracts.Text);
     Settings.maxBallistas   = int.Parse(this.txtBallistas.Text);
     theBot = new Thread(Bot.start);
     theBot.Start();
 }
示例#3
0
 public static void start()
 {
     states  = new State[Settings.maxVMs];
     threads = new Thread[Settings.maxVMs];
     running = true;
     while (running)
     {
         int s = Array.IndexOf(states, null);
         if (s != -1)
         {
             int   pId = MEmuManager.startVMs();
             State st  = new State(MEmuManager.getHandle(pId));
             st.processIndex = pId;
             states[s]       = st;
             threads[s]      = new Thread(() => runBot(ref states[s]));
             threads[s].Start();
         }
         Thread.Sleep(10000);
     }
 }
示例#4
0
 public MainForm()
 {
     RegisterHotKey(this.Handle, MYACTION_HOTKEY_ID, 6, (int)Keys.F12);
     new DB();
     MEmuManager.getVMs();
     InitializeComponent();
     lstMEmuProfiles.View       = View.Details;
     lstMEmuProfiles.CheckBoxes = true;
     foreach (List <string> vm in MEmuManager.getMEmuIDs())
     {
         ListViewItem item = new ListViewItem(new[] { "", vm[0] });
         item.Checked = true;
         this.lstMEmuProfiles.Items.Add(item);
         this.lstProfiles.Items.Add(vm[0]);
     }
     ttpInstances.SetToolTip(this.lblNoInstances, Strings.noOfInstancesToolTip);
     ttpInstances.SetToolTip(this.txtNoInstances, Strings.noOfInstancesToolTip);
     ttpInstances.SetToolTip(this.lblTimeOnAccount, Strings.amtOfTimeToolTip);
     ttpInstances.SetToolTip(this.txtTimeOnAccount, Strings.amtOfTimeToolTip);
 }
示例#5
0
        public static int startVMs()
        {
            int p       = 0;
            int vmsLeft = Settings.maxVMs - MEmuManager.runningVMs;

            if (MEmuManager.runningVMs < Settings.maxVMs && MEmuManager.runningVMs < MEmuManager.allowedVMs.Count)
            {
                if (MEmuManager.lastVM < MEmuManager.allowedVMs.Count)
                {
                    p = MEmuManager.startVM(MEmuManager.allowedVMs[MEmuManager.lastVM]);
                    MEmuManager.lastVM++;
                    MEmuManager.runningVMs++;
                }
                else
                {
                    MEmuManager.lastVM = 0;
                    p = MEmuManager.startVM(MEmuManager.allowedVMs[MEmuManager.lastVM]);
                    MEmuManager.lastVM++;
                    MEmuManager.runningVMs++;
                }
            }
            return(p);
        }
示例#6
0
        private static void runBot(ref State s)
        {
            Tutorial t = new Tutorial(s);

            while (true && running)
            {
                while (s.v.matchTemplate(Assets.MEmu.Lords2, 0.8).X == -1 && s.state == "Loading" && running)
                {
                    MEmuManager.resizeWindow(s.processIndex);
                    Debug.WriteLine("Looking for Lords Mobile");
                    Thread.Sleep(2000);
                }
                if (s.c.vClick(s.v.matchTemplate(Assets.MEmu.Lords2, 0.8)))
                {
                    Thread.Sleep(1000);
                }
                if (s.state == "Loading")
                {
                    s.state = "Launching Lords Mobile";
                    while (!t.hasTutorial() && s.v.matchTemplate(Assets.Etc.Close, 0.8).X == -1 && s.v.matchTemplate(Assets.Etc.Oracle, 0.55).X == -1 && running)
                    {
                        Debug.WriteLine("Stuck Launching");
                        Debug.WriteLine(s.processIndex);
                        MEmuManager.resizeWindow(s.processIndex);
                        Thread.Sleep(1500);
                    }
                    Thread.Sleep(1000);
                    if (t.hasTutorial())
                    {
                        t.doTutorial();
                    }
                }
                Thread.Sleep(2000);
                s.clearScreen();
                if (s.profile.getAccountNo() == "")
                {
                    Debug.WriteLine("Getting profile.");
                    s.state = "Getting Profile";
                    s.profile.getProfile();
                    s.clearScreen();
                    s.reset();
                    s.screen = 1;
                }
                Debug.WriteLine("Outside profile.");

                s.c.vClick(s.v.matchTemplate(Assets.Development.Free, 0.65));
                s.c.vClick(s.v.matchTemplate(Assets.Development.Help, 0.6));
                if (s.c.vClick(s.v.matchTemplate(Assets.Hud.Help, 0.65)))
                {
                    s.c.vClick(new Point(491, 534));
                    s.clearScreen();
                }

                if (s.v.matchTemplate(Assets.Chest.Collect, 0.65).X != -1)
                {
                    s.c.vClick(Statics.Chest.CHEST);
                    s.c.vClick(Statics.Chest.CLAIM);
                }

                if (s.c.vClick(s.v.matchTemplate(Assets.Hud.ExtraSupplies, 0.75)))
                {
                    s.c.vClick(Statics.Hud.EXTRA_SUPPLIES_COLLECT);
                }

                if (DateTime.Now > s.lastShelterCheck.AddMinutes(5))
                {
                    s.lastShelterCheck = Core.mainChecks(s, s.screen);
                }


                /**
                 *  ~~~   Quest Checks   ~~~
                 *
                 */
                if (s.c.vClick(s.v.matchTemplate(Assets.Quest.HasCompleted, 0.65)) ||
                    s.c.vClick(s.v.matchTemplate(Assets.Quest.HasQuests, 0.65)))
                {
                    if (s.c.vClick(s.v.matchTemplate(Assets.Quest.Turf, 0.61)))
                    {
                        while (s.c.vClick(s.v.matchTemplate(Assets.Quest.Collect, 0.8)))
                        {
                            Debug.WriteLine("Turf");
                            if (s.v.matchTemplate(Assets.Etc.LevelUpTxt, 0.55).X != -1)
                            {
                                s.c.vClick(Statics.CLOSE_LEVEL_UP);
                            }
                        }
                    }
                    if (s.c.vClick(s.v.matchTemplate(Assets.Quest.Admin, 0.6)))
                    {
                        while (s.c.vClick(s.v.matchTemplate(Assets.Quest.Collect, 0.8)))
                        {
                            Debug.WriteLine("Admin");
                            if (s.v.matchTemplate(Assets.Etc.LevelUpTxt, 0.55).X != -1)
                            {
                                s.c.vClick(Statics.CLOSE_LEVEL_UP);
                            }
                        }
                        s.c.vClick(s.v.matchTemplate(Assets.Quest.Start, 0.5));
                    }
                    if (s.c.vClick(s.v.matchTemplate(Assets.Quest.Guild, 0.6)))
                    {
                        while (s.c.vClick(s.v.matchTemplate(Assets.Quest.Collect, 0.8)))
                        {
                            Debug.WriteLine("Guild");
                            if (s.v.matchTemplate(Assets.Etc.LevelUpTxt, 0.55).X != -1)
                            {
                                s.c.vClick(Statics.CLOSE_LEVEL_UP);
                            }
                        }
                        s.c.vClick(s.v.matchTemplate(Assets.Quest.Start, 0.5));
                    }
                    if (s.c.vClick(s.v.matchTemplate(Assets.Quest.VIP, 0.61)))
                    {
                        if (s.v.matchTemplate(Assets.Quest.VIPClaim, 0.7).X != -1)
                        {
                            s.c.vClick(s.v.matchTemplate(Assets.Quest.VIPChest, 0.6));
                        }
                    }
                }



                s.clearScreen();
                if (s.v.matchTemplate(Assets.Hud.Army, 0.6).X == -1)
                {
                    Gather g = new Gather(s);
                    s.lastResource = g.gather(rnd.Next(0, 5));
                }

                while (s.v.matchTemplate(Assets.Development.NoCR, 0.55).X != -1)
                {
                    s.goTo();
                    Build b = new Build(s);
                    b.build();
                    s.screen = -1;

                    s.c.vClick(s.v.matchTemplate(Assets.Development.Free, 0.65));
                    s.c.vClick(s.v.matchTemplate(Assets.Development.Help, 0.6));
                }

                s.c.vClick(s.v.matchTemplate(Assets.Development.Free, 0.65));
                s.c.vClick(s.v.matchTemplate(Assets.Development.Help, 0.6));

                if (s.v.matchTemplate(Assets.Chest.Collect, 0.65).X != -1)
                {
                    s.c.vClick(Statics.Chest.CHEST);
                    s.c.vClick(Statics.Chest.CLAIM);
                }


                Debug.WriteLine("Start: " + s.start.ToString() + ", End: " + s.start.AddMinutes(Settings.duration).ToString() + ", Done? " + s.hasTimeElapsed());
                Debug.WriteLine("Waiting for time to pass.");
                Thread.Sleep(1000);
            }
        }