コード例 #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            ConsoleTab console = new ConsoleTab();

            this.tabControl1.TabPages.Add(console);

            ConsoleTab.WriteLine("BlueVex 2 Diablo 2 Proxy By Pleh");

            OverviewTab overview = new OverviewTab();

            this.tabControl1.TabPages.Add(overview);

            try
            {
                LoadDiabloTabs();
            }
            catch (Exception err)
            {
                MessageBox.Show("Make sure your settings are set." + "\r\n\n" + "Advanced:" + "\r\n\n" + err.ToString(), "BlueVex2", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            if (BlueVex2.Properties.Settings.Default.UseBV2Proxy)
            {
                StartProxies();
                PlugInManager.FindAvailablePlugIns();
                List <Plugin> plugs = PlugInManager.AvailablePlugins;

                foreach (Plugin plug in plugs)
                {
                    ConsoleTab.WriteLine("Loading plugin: " + plug.TypeName);
                }
            }
        }
コード例 #2
0
 void bnetProxy_ClientConnected(object sender, EventArgs args)
 {
     foreach (Plugin plugin in PlugInManager.AvailablePlugins)
     {
         ConsoleTab.WriteLine("Loading " + plugin.TypeName);
         IPlugin loadedPlugin = plugin.CreateInstance();
         loadedPlugin.Initialize(((BnetProxy)sender).Proxy);
         this.BeginInvoke(new InitUIDelegate(InitUI), loadedPlugin);
     }
 }
コード例 #3
0
        private void StartProxies()
        {
            ConsoleTab.WriteLine("Starting Proxies...");
            ProxyServer bnetProxy = new ProxyServer(6112, ProxyType.Bnet);

            bnetProxy.ClientConnected    += new ProxyServer.ClientConnectedHandler(bnetProxy_ClientConnected);
            bnetProxy.AttachDiabloWindow += new ProxyServer.AttachDiabloWindowHandler(bnetProxy_AttachDiabloWindow);
            ProxyServer realmProxy = new ProxyServer(6113, ProxyType.Realm); // bnet 6112
            ProxyServer gameProxy  = new ProxyServer(4000, ProxyType.Game);

            ConsoleTab.WriteLine("Proxies running!");
        }
コード例 #4
0
 void bnetProxy_AttachDiabloWindow(Proxy proxy, string keyOwner)
 {
     foreach (IDiabloWindow diabloWindow in DiabloWindow.DiabloWindows)
     {
         if (diabloWindow.KeyOwner.ToUpper() == keyOwner.ToUpper())
         {
             proxy.DiabloWindow = diabloWindow;
             return;
         }
     }
     ConsoleTab.WriteLine("Could not find window for " + keyOwner);
 }
コード例 #5
0
        public static void LoginToBattleNet(string defaultAccount, int delay, DiabloWindow diabloWindow)
        {
            if (!string.IsNullOrEmpty(defaultAccount))
            {
                string username = string.Empty;
                string password = string.Empty;
                string charslot = string.Empty;
                string master   = string.Empty;

                foreach (string accountString in BlueVex2.Properties.Settings.Default.Accounts)
                {
                    if (accountString.StartsWith(defaultAccount + ","))
                    {
                        string[] parts = accountString.Split(',');
                        username = parts[0];
                        password = parts[1];
                        charslot = parts[2];
                        master   = parts[3];
                    }
                }

                if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password))
                {
                    return;
                }

                Thread.Sleep((int)delay);
                ConsoleTab.WriteLine("Logging into Battle Net as " + username);

                // Click to load menu
                Thread.Sleep(2000);
                DiabloInteraction.ClickButton(DiabloInteraction.Diablo2Button.BattleNet, diabloWindow);

                // Click BattleNet button
                Thread.Sleep(500);
                DiabloInteraction.ClickButton(DiabloInteraction.Diablo2Button.BattleNet, diabloWindow);

                // Tab
                Thread.Sleep(2000);
                diabloWindow.SendKeyDown(new KeyEventArgs(Keys.Tab));
                diabloWindow.SendKeyUp(new KeyEventArgs(Keys.Tab));

                //Username
                Thread.Sleep(500);
                DiabloInteraction.WriteString(username, diabloWindow);

                //Tab
                Thread.Sleep(500);
                diabloWindow.SendKeyDown(new KeyEventArgs(Keys.Tab));
                diabloWindow.SendKeyUp(new KeyEventArgs(Keys.Tab));

                //Password
                Thread.Sleep(500);
                DiabloInteraction.WriteString(password, diabloWindow);

                // Enter
                Thread.Sleep(500);
                diabloWindow.SendKeyDown(new KeyEventArgs(Keys.Enter));
                diabloWindow.SendKeyUp(new KeyEventArgs(Keys.Enter));

                // Double Click Character Slot
                Thread.Sleep(5000);
                switch (charslot)
                {
                case "1":
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot1, diabloWindow);
                    break;

                case "2":
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot2, diabloWindow);
                    break;

                case "3":
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot3, diabloWindow);
                    break;

                case "4":
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot4, diabloWindow);
                    break;

                case "5":
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot5, diabloWindow);
                    break;

                case "6":
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot6, diabloWindow);
                    break;

                case "7":
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot7, diabloWindow);
                    break;

                case "8":
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot8, diabloWindow);
                    break;

                default:
                    DiabloInteraction.DoubleClickButton(DiabloInteraction.Diablo2Button.CharacterSlot1, diabloWindow);
                    break;
                }
            }
        }