Esempio n. 1
0
        public static byte [] AddGoldSellPacket(int price, int count)
        {
            var persId = BitConverter.GetBytes(ReadMemoryService.getPersId(Process.GetProcessById(Form1.procId).Handle));

            byte [] packet = addGoldSell;

            packet [14] = persId [3];
            packet [15] = persId [2];
            packet [16] = persId [1];
            packet [17] = persId [0];

            var priceByte = BitConverter.GetBytes(price);

            packet [19] = priceByte [3];
            packet [20] = priceByte [2];
            packet [21] = priceByte [1];
            packet [22] = priceByte [0];

            var countByte = BitConverter.GetBytes(count);

            packet [23] = countByte [3];
            packet [24] = countByte [2];
            packet [25] = countByte [1];
            packet [26] = countByte [0];

            return(packet);
        }
Esempio n. 2
0
        public static byte [] CancelGoldBuyPacket(int id, int price)
        {
            var persId = BitConverter.GetBytes(ReadMemoryService.getPersId(Process.GetProcessById(Form1.procId).Handle));

            byte [] packet = cancelGoldBuy;

            packet [14] = persId [3];
            packet [15] = persId [2];
            packet [16] = persId [1];
            packet [17] = persId [0];

            var idByte = BitConverter.GetBytes(id);

            packet [18] = idByte [3];
            packet [19] = idByte [2];
            packet [20] = idByte [1];
            packet [21] = idByte [0];

            var priceByte = BitConverter.GetBytes(price);

            packet [22] = priceByte [3];
            packet [23] = priceByte [2];
            packet [24] = priceByte [1];
            packet [25] = priceByte [0];

            return(packet);
        }
Esempio n. 3
0
        private void button9_Click_1(object sender, EventArgs e)
        {
            while (true)
            {
                var persId = BitConverter.GetBytes(ReadMemoryService.getPersId(Process.GetProcessById(Form1.procId).Handle));

                ReadMemoryService.getListGoldSupplier(Process.GetProcessById(procId).Handle, procId, ReadMemoryService.getPackAcceptAddress(Process.GetProcessById(procId).Handle));
                Thread.Sleep(1000);
            }
        }
Esempio n. 4
0
        private void button8_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();

            var tmp = ReadMemoryService.getListGold(Process.GetProcessById(procId).Handle, procId, ReadMemoryService.getPackAcceptAddress(Process.GetProcessById(procId).Handle));


            listBox1.Items.Add("Продажа:");
            var saleArray = tmp ["sale"];

            foreach (var key in saleArray.Keys)
            {
                listBox1.Items.Add(key + " - " + saleArray [key]);
            }

            listBox1.Items.Add("");
            listBox1.Items.Add("Покупка:");

            var buyArray = tmp ["buy"];

            foreach (var key in buyArray.Keys)
            {
                listBox1.Items.Add(key + " - " + buyArray [key]);
            }



            listBox2.Items.Clear();

            var tmp2 = ReadMemoryService.getListGoldSupplier(Process.GetProcessById(procId).Handle, procId, ReadMemoryService.getPackAcceptAddress(Process.GetProcessById(procId).Handle));

            var buyArray2  = tmp2 ["buy"];
            var saleArray2 = tmp2 ["sale"];
            int count      = saleArray2.Count + buyArray2.Count;

            listBox2.Items.Add("Всего: " + count);
            listBox2.Items.Add("");

            listBox2.Items.Add("Продажа");

            foreach (var tmp3 in saleArray2)
            {
                listBox2.Items.Add(tmp3.Value ["id"] + " - " + tmp3.Value ["price"] + " - " + tmp3.Value ["count"]);
            }

            listBox2.Items.Add("");

            listBox2.Items.Add("Покупка");

            foreach (var tmp3 in buyArray2)
            {
                listBox2.Items.Add(tmp3.Value ["id"] + " - " + tmp3.Value ["price"] + " - " + tmp3.Value ["count"]);
            }
        }
Esempio n. 5
0
        public static byte [] RefreshListPacketSupplier()
        {
            var persId = BitConverter.GetBytes(ReadMemoryService.getPersId(Process.GetProcessById(Form1.procId).Handle));

            byte [] packet = refreshListSupplier;

            packet [14] = persId [3];
            packet [15] = persId [2];
            packet [16] = persId [1];
            packet [17] = persId [0];

            return(packet);
        }
Esempio n. 6
0
        public int getMaxCountSale()
        {
            int money    = ReadMemoryService.getGoldAuction(GetHandler());
            int maxCount = getMaxCount();

            int realCount = (int)Math.Floor(money / 1.02 / 100);

            if (maxCount < realCount)
            {
                return(maxCount);
            }
            else
            {
                return(realCount);
            }
        }
Esempio n. 7
0
        public int getMaxCountBuy(int price)
        {
            double realPrice = price * 1.02;
            int    money     = ReadMemoryService.getMoneyAuction(GetHandler());
            int    maxCount  = getMaxCount();

            int realCount = (int)Math.Floor(money / realPrice);

            if (maxCount < realCount)
            {
                return(maxCount);
            }
            else
            {
                return(realCount);
            }
        }
Esempio n. 8
0
        private void updateComboProcess()
        {
            String name = "elementclient";

            Process [] pwProceses = Process.GetProcessesByName(name);

            comboBox1.Items.Clear();

            foreach (Process pwProcess in pwProceses)
            {
                comboBox1.Items.Add(
                    new {
                    Text  = pwProcess.Id + " - " + ReadMemoryService.getPersName(pwProcess.Handle) + " (" + ReadMemoryService.getServerName(pwProcess.Handle) + ")",
                    Value = pwProcess.Id
                }
                    );
            }
        }
Esempio n. 9
0
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            ReadMemoryService.moneyAuctionAddress = 0;
            ReadMemoryService.goldAuctionAddress  = 0;

            Object obj = comboBox1.SelectedItem;

            procId = (int)GetPropValue(obj, "Value");

            textBox2.Text = getMoneyInAuction().ToString();
            textBox1.Text = getGoldInAuction().ToString();


            string name = ReadMemoryService.getPersName(Process.GetProcessById(procId).Handle);

            name += " (" + ReadMemoryService.getServerName(Process.GetProcessById(procId).Handle) + ")";

            this.Text        = name;
            notifyIcon1.Text = name;
        }
Esempio n. 10
0
 private void button12_Click(object sender, EventArgs e)
 {
     ReadMemoryService.ActiveGoldList(Process.GetProcessById(4548).Handle);
 }
Esempio n. 11
0
 public int getMoneyInAuction()
 {
     return(ReadMemoryService.getMoneyAuction(Process.GetProcessById(procId).Handle));
 }
Esempio n. 12
0
        private void StartNewWindow()
        {
            while (File.Exists("lock.lock"))
            {
                Thread.Sleep(5000);
            }

            // файл уникальности
            File.Create("lock.lock").Close();



            Form1.procId = 0;
            String name = "elementclient";

            Process [] pwProceses = Process.GetProcessesByName(name);

            int [] pwProcessIdArray = new int [pwProceses.Length];

            int count = 0;

            foreach (Process pwProcess in pwProceses)
            {
                pwProcessIdArray [count] = pwProcess.Id;
                count++;
            }

            while (true)
            {
                try {
                    AppService.Start(Form1.textServerBox);
                    break;
                } catch (WebException) {
                    Thread.Sleep(5000);
                }
            }

            while (Form1.procId == 0)
            {
                Thread.Sleep(2000);

                Process [] pwProceses2 = Process.GetProcessesByName(name);

                foreach (Process pwProcess in pwProceses2)
                {
                    if (pwProcessIdArray.Contains(pwProcess.Id))
                    {
                        continue;
                    }

                    Form1.procId = pwProcess.Id;

                    break;
                }
            }



            Thread.Sleep(20000);

            ReadMemoryService.ActiveServerList(Process.GetProcessById(Form1.procId).Handle);

            // escape для выбора сервера
            PostMessage(Process.GetProcessById(Form1.procId).MainWindowHandle, WM_KEYDOWN, VK_ESCAPE, 0);
            Thread.Sleep(100);
            PostMessage(Process.GetProcessById(Form1.procId).MainWindowHandle, WM_KEYUP, VK_ESCAPE, 0);

            // удаляем файл
            File.Delete("lock.lock");

            Thread.Sleep(10000);

            // enter для входа
            PostMessage(Process.GetProcessById(Form1.procId).MainWindowHandle, WM_KEYDOWN, VK_ENTER, 0);
            Thread.Sleep(100);
            PostMessage(Process.GetProcessById(Form1.procId).MainWindowHandle, WM_KEYUP, VK_ENTER, 0);
            Thread.Sleep(1000);
            PostMessage(Process.GetProcessById(Form1.procId).MainWindowHandle, WM_KEYDOWN, VK_ENTER, 0);
            Thread.Sleep(100);
            PostMessage(Process.GetProcessById(Form1.procId).MainWindowHandle, WM_KEYUP, VK_ENTER, 0);

            Thread.Sleep(30000);

            string userName = ReadMemoryService.getPersName(Process.GetProcessById(Form1.procId).Handle);


            if (userName == "")
            {
                Form1.runThread.Abort();
            }

            changeName(userName, Form1.textServerBox);
            // замена title окна
            SetWindowText(Process.GetProcessById(Form1.procId).MainWindowHandle, userName + " (" + Form1.textServerBox + ")");

            // выбор аукциониста
            PacketService.sendPacket(Process.GetProcessById(Form1.procId).Handle, Form1.procId, GoldService.selectedNPC);

            while (ReadMemoryService.isLock(Process.GetProcessById(Form1.procId).Handle))
            {
                if (ReadMemoryService.getActiveWinName(Process.GetProcessById(Form1.procId).Handle) == "MsgBox_LinkBroken")
                {
                    Form1.runThread.Abort();
                }

                Thread.Sleep(1000);
            }

            Thread.Sleep(1000);
            PacketService.sendPacket(Process.GetProcessById(Form1.procId).Handle, Form1.procId, GoldService.selectedNPCMenu);
            Thread.Sleep(1000);
            PacketService.sendPacket(Process.GetProcessById(Form1.procId).Handle, Form1.procId, GoldService.RefreshListPacket());
        }
Esempio n. 13
0
 private void button10_Click(object sender, EventArgs e)
 {
     ReadMemoryService.MakeMonye(Process.GetProcessById(procId).Handle, procId);
 }
Esempio n. 14
0
        private void checkSale()
        {
            addToLog("");
            addToLog("Логика Продажи");

            int money = ReadMemoryService.getGoldAuction(Process.GetProcessById(procId).Handle);

            int firstPrice = 0;

            int  count          = 0;
            int  price          = 0;
            int  index          = 0;
            int  goldCount      = 0;
            bool isRate         = false;
            int  countBeforeMax = Int32.Parse(textBoxCountMax.Text);
            int  priceStep      = Int32.Parse(textBoxPriceStep.Text);


            int maxCount = 0;

            foreach (var tmp in goldSaleArray)
            {
                price = tmp.Key;
                count = tmp.Value;

                if (index == 0)
                {
                    // первая ставка, проверяем если наша или денег нет то выходим
                    if (IsOurRateSale(price))
                    {
                        addToLog("Наша ставка первая - return");
                        return;
                    }

                    if (money < 102)
                    {
                        addToLog("Денег нет (" + money + ") - return");
                        // денег нет
                        return;
                    }

                    firstPrice = price;

                    // добавляем к количеству перед нами
                    goldCount += count;
                }
                else
                {
                    // нашли нашу ставку
                    if (IsOurRateSale(price))
                    {
                        isRate = true;
                        break;
                    }
                    else
                    {
                        // добавляем к количеству перед нами
                        goldCount += count;
                    }
                }

                index++;
            }

            // наши ставки есть в списке из 8 последних
            if (isRate)
            {
                addToLog("Ставки есть, до наших - " + goldCount);

                // до на сбольше 40
                if (goldCount > countBeforeMax)
                {
                    // делаем ставку
                    firstPrice -= priceStep;

                    maxCount = getMaxCountSale();

                    PacketService.sendPacket(Process.GetProcessById(procId).Handle, procId, GoldService.AddGoldSellPacket(firstPrice, maxCount));

                    addToLog("До нас - " + goldCount + ", Делаем ставку: " + firstPrice + " - " + maxCount);

                    supplierCount++;
                }
            }
            else
            {
                // ставок нет

                // делаем ставку
                firstPrice -= priceStep;

                maxCount = getMaxCountSale();

                PacketService.sendPacket(Process.GetProcessById(procId).Handle, procId, GoldService.AddGoldSellPacket(firstPrice, maxCount));

                addToLog("Ставок нет, Делаем ставку: " + firstPrice + " - " + maxCount);

                supplierCount++;
            }
        }
Esempio n. 15
0
        private void run()
        {
            clearLog();


            if (Form1.procId == 0)
            {
                StartNewWindow();
            }


            IntPtr handle = GetHandler();
            Random rnd    = new Random();

            int address = ReadMemoryService.getPackAcceptAddress(Process.GetProcessById(procId).Handle);



            int    sleepCount = 10000;
            double margin     = 0;
            double myMoney    = 0;
            int    myGold     = 0;
            int    salePrice  = 0;
            int    buyPrice   = 0;

            while (true)
            {
                logCount++;

                if (logCount > 10)
                {
                    clearLog();
                    logCount = 0;
                }

                margin  = 0;
                myMoney = 0;
                myGold  = 0;
                addToLog("");
                addToLog("Получаем поставленное");
                // получаем поставленные
                supplierArray     = ReadMemoryService.getListGoldSupplier(Process.GetProcessById(procId).Handle, procId, address);
                supplierBuyArray  = supplierArray ["buy"];
                supplierSaleArray = supplierArray ["sale"];
                // наше количество ставок
                supplierCount = supplierBuyArray.Count + supplierSaleArray.Count;

                Thread.Sleep(100);

                // получаем список
                addToLog("Получаем Общий");
                goldArray     = ReadMemoryService.getListGold(Process.GetProcessById(procId).Handle, procId, address);
                goldBuyArray  = goldArray ["buy"];
                goldSaleArray = goldArray ["sale"];
                salePrice     = goldSaleArray.First().Key;
                buyPrice      = goldBuyArray.First().Key;

                margin = salePrice - buyPrice - (buyPrice * 0.04);
                addToLog("Маржа: " + margin);

                Thread.Sleep(100);

                // деньги с аука
                myMoney += ReadMemoryService.getMoneyAuction(Process.GetProcessById(procId).Handle);
                myGold  += ReadMemoryService.getGoldAuction(Process.GetProcessById(procId).Handle);

                foreach (var tmp3 in supplierSaleArray)
                {
                    myGold += tmp3.Value ["count"] * 100;
                }

                foreach (var tmp3 in supplierBuyArray)
                {
                    myMoney += tmp3.Value ["price"] * tmp3.Value ["count"];
                }

                myMoney += (myGold * 0.98 * buyPrice / 100);
                myMoney  = Math.Round(myMoney / 1000);
                MakeMoneyText(myMoney.ToString("N"));

                if (supplierCount < 10 && margin > 3000)
                {
                    // еще есть возможность ставить ставки

                    // есть и скупка и продажа
                    if (goldBuyArray.Count > 0 && goldSaleArray.Count > 0)
                    {
                        checkBuy();
                        Thread.Sleep(1000);

                        if (supplierCount < 10)
                        {
                            checkSale();
                        }
                    }
                    else if (goldBuyArray.Count > 0)
                    {
                    }
                    else if (goldSaleArray.Count > 0)
                    {
                    }
                }
                else if (margin > 10000)
                {
                    // маржа должна быть больше, ибо потери при отмене
                    // нужно чтото отменять
                }

                Thread.Sleep(sleepCount + rnd.Next(10, 100) * 100);
            }
        }