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); }
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); }
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); } }
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"]); } }
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); }
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); } }
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); } }
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 } ); } }
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; }
private void button12_Click(object sender, EventArgs e) { ReadMemoryService.ActiveGoldList(Process.GetProcessById(4548).Handle); }
public int getMoneyInAuction() { return(ReadMemoryService.getMoneyAuction(Process.GetProcessById(procId).Handle)); }
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()); }
private void button10_Click(object sender, EventArgs e) { ReadMemoryService.MakeMonye(Process.GetProcessById(procId).Handle, procId); }
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++; } }
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); } }