What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Open Auction House Bot

Is it possible to make the game exit if you don't have enough money to bid anymore? I run the bot afk and usually come back to only a few silver left and not enough to buy anything -_-.
 
Is there any possibility to limit how many pages it goes through and the sorting?
 
Last edited:
Is there anyway to decide how much the plugin will bid over the price i have set for each material/item?
 
Hello, would anyone like to help me out with this script I have no idea where to start. Willing to pay ingame gold! If interested, PM me xD
 
I'm trying to use the same script by you lypnn but with this change:

Log(DateTime.Now.ToShortTimeString() + " > ----- Open Auction House started -----");

while (true)
{
//buyFromAuctionHouse("Fish-Find Longliner Design", 10000000, 1); // 10000000 copper per item, minimum amount 1

// add more items here

It didn't bid when I left it near the Auctioneer with the AH window open. I'm not sure if the item was >1000g by the time it was time to bid or not but I doubt it. The last time I checked was 8min before the bidding finished.

Is there something wrong with the edited part I posted above? My max bid is 1000g
 
Last edited:
Anyone by chance able to get this to work with listing an item? Maybe I'm just missing something...

I've looked through the API documentation here: ArcheBuddy - Table of Content

All I want to do is have it do the following:
//Search Raw Stone
//Check lowest price of Raw Stone
If price is not lower than 5s
List 1 Raw Stone @ 5s
Else
continue;

I can certainly attempt to work with even a skeleton of the code. I don't mind making catches if needed.
 
Hello, im start using this plugin, and have some problems.

-Plugin go to pages, but NEVER bid.

Here is the script, and the log
[HIDE]
Using System;
using System.Drawing;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using ArcheBuddy.Bot.Classes;

namespace OpenAuctionHouse
{
public class OpenAuctionHouse : Core
{
private int overbidamount = 80; // attempt to bid 40c above current bid
private int waitSecondsForAuctionEnd = 180; // if a bid item is at < 3 minutes wait for it to end
private int msToBidBeforeAuctionEnd = 5000; // wait until timeleft = 5 seconds until bidding myself

private Random r = new Random();
public static string GetPluginAuthor()
{
return "lypnn";
}

public static string GetPluginVersion()
{
return "2.3.0.0";
}

public static string GetPluginDescription()
{
return "Open Auction House";
}

//Call on plugin start
public void PluginRun()
{
try
{
Log(DateTime.Now.ToShortTimeString() + " > ----- Open Auction House started -----");

while (true)
{
buyFromAuctionHouse("Faint gale lunadrop", 4480, 1); // 80 copper per item, minimum amount 2
buyFromAuctionHouse("Clear fire lunadrop", 4480, 1); // 50 copper per item, minimum amount 2

// add more items here
}
}
catch (Exception e)
{
if (e.GetType() != typeof(System.Threading.ThreadAbortException))
{
Log(DateTime.Now.ToShortTimeString() +" ERROR " +GetLastError().ToString() +" " +e.GetType().ToString() +" " +e.StackTrace);
Log(e.Message);
}
}
}

//Call on plugin stop
public void PluginStop()
{
Log(DateTime.Now.ToShortTimeString() + " > ----- Open Auction House stopped -----");
}

////////// no variables to edit below this line /////////////

//buyout an auction house item
public void buyFromAuctionHouse(string mySearchText, int maxprice, int minamount) // maxprice per item in copper, 1g = 1 00 00 copper
{
AuctionRequestParams req = new AuctionRequestParams(AuctionCategory.Off, 0, 0, mySearchText, false, ItemGrade.Common, AuctionSortType.Time, SortOrder.Asc);
int pip; // per item price
bool bidreturn;

List<AuctionItem> items = getAuctionBuyList(req, 0);
if(items != null)
{
foreach (AuctionItem item in items)
{
if (!item.item.name.Equals(mySearchText)) // auctionitem item name must match the searchText
continue;

if (Convert.ToInt32(item.time) > waitSecondsForAuctionEnd)
{
pip = (int)item.buyBackPrice / item.item.count;

if (item.item.count < minamount || item.buyBackPrice == 0 || pip > maxprice)
continue;

if (me.goldCount >= item.buyBackPrice)
{
Thread.Sleep(100 + r.Next(150));
bidreturn = item.MakeAuctionBid(item.buyBackPrice);
Thread.Sleep(1000 + r.Next(500));
if (bidreturn)
Log(DateTime.Now.ToShortTimeString() + " > Attempting to BUYOUT " + item.item.count + " " + item.item.name + " with per item price " + pip.ToString() + " ... succeeded !");
else
Log(DateTime.Now.ToShortTimeString() + " > Attempting to BUYOUT " + item.item.count + " " + item.item.name + " with per item price " + pip.ToString() + " ... failed.");
}
else
Log(DateTime.Now.ToShortTimeString() + " > not enough gold to buyout " + item.item.count + " " + item.item.name + " for " + item.buyBackPrice);
}
else // auction items time is nearly over, check if we want to bid on it
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice && item.item.count >= minamount) // check if this is an item below maxprice
{
bidOnAuctionHouse(req, item.uniqId, maxprice);
break;
}
}
}
}
else
{
Log(DateTime.Now.ToShortTimeString() + " > " +GetLastError().ToString() +" Error ... will try again");
}
Thread.Sleep(2000 + r.Next(3000)); // Random sleep 2-5s
}
public void bidOnAuctionHouse(AuctionRequestParams req, ulong itemId, int maxprice)
{
int pip; // per item price
int myBidAmount;
int sleepTime;
bool bidreturn;

List<AuctionItem> items = getAuctionBuyList(req, 9);
foreach (AuctionItem item in items)
{
if (item.uniqId == itemId)
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice)
{
sleepTime = Convert.ToInt32(item.time) * 1000 - Convert.ToInt32(r.Next(500)) - msToBidBeforeAuctionEnd;
Log(DateTime.Now.ToShortTimeString() + " > waiting " + ((int)sleepTime / 1000).ToString() + " seconds to attempt a last-second-bid on " + item.item.count + " " + item.item.name + " (current bid price per item: " + pip + " maxprice: " +maxprice +")");
if (sleepTime > 100)
Thread.Sleep(sleepTime);
break;
}
else
return; // the item has become too expensive
}
}

items = getAuctionBuyList(req, 9);
foreach (AuctionItem item in items)
{
if (item.uniqId == itemId)
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice)
{
myBidAmount = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) + overbidamount;
if (me.goldCount >= myBidAmount)
{
bidreturn = item.MakeAuctionBid(myBidAmount);
Thread.Sleep(1000 + r.Next(500));
if (bidreturn)
Log(DateTime.Now.ToShortTimeString() + " > Successfully sent a BID on " + item.item.count + " " + item.item.name + " with " + myBidAmount + " (pip: " + (myBidAmount/item.item.count) + ")");
else
Log(DateTime.Now.ToShortTimeString() + " > Failed to send a BID on " + item.item.count + " " + item.item.name + " with " + myBidAmount + " (pip: " +(myBidAmount/item.item.count) +")");
}
else
Log(DateTime.Now.ToShortTimeString() + " > not enough gold to bid on " + item.item.count + " " + item.item.name + " with " + myBidAmount);
}
else
return; // the item has become too expensive
}
}
}
}
}[/HIDE]

16:02 > ----- Open Auction House started -----
16:07 > ----- Open Auction House stopped -----

Few items end in the 5mins, but bot dont do anything. Only see the pages of items.
Don't buy, and dont bid.

Need special name of the dll and the cs? and the folder?
 
Isn't there a way to get only first page? Refreshing all pages makes it too slow. Since bot has been losing too much time on that and can't see the the current bid amount when its necessery.

If it only refresh first page, then you could refresh it like 3 secs before the auction ends and bid.
 
for only the first page look at my post from last lear here:

This plugin works as buyout and bidding automation because thats what the other plugin did (which thread is now closed). If you want to do only the bidding, please change the first buylist to req = 9 as you propably figured out yourself already.

getAuctionBuyList(req, 0); => getAuctionBuyList(req, 9);
 
Can someone explaine why my bot only searching but not to buy goods? Может кто-то подсказать, почему у меня бот только перелистывает товары, но ничего не покупает?
Вот мог файл, к примеру: (sorry for big text don't know how to hide)

using System;
using System.Drawing;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using ArcheBuddy.Bot.Classes;

namespace OpenAuctionHouse
{
public class OpenAuctionHouse : Core
{
private int overbidamount = 40; // attempt to bid 40c above current bid
private int waitSecondsForAuctionEnd = 180; // if a bid item is at < 3 minutes wait for it to end
private int msToBidBeforeAuctionEnd = 5000; // wait until timeleft = 5 seconds until bidding myself

private Random r = new Random();
public static string GetPluginAuthor()
{
return "lypnn";
}

public static string GetPluginVersion()
{
return "2.3.0.0";
}

public static string GetPluginDescription()
{
return "Open Auction House";
}

//Call on plugin start
public void PluginRun()
{
try
{
Log(DateTime.Now.ToShortTimeString() + " > ----- Open Auction House started -----");

while (true)
{
buyFromAuctionHouse("лекарственный порошок", 80, 1); // 80 copper per item, minimum amount 1

// add more items here
}
}
catch (Exception e)
{
if (e.GetType() != typeof(System.Threading.ThreadAbortException))
{
Log(DateTime.Now.ToShortTimeString() +" ERROR " +GetLastError().ToString() +" " +e.GetType().ToString() +" " +e.StackTrace);
Log(e.Message);
}
}
}

//Call on plugin stop
public void PluginStop()
{
Log(DateTime.Now.ToShortTimeString() + " > ----- Open Auction House stopped -----");
}

////////// no variables to edit below this line /////////////

//buyout an auction house item
public void buyFromAuctionHouse(string mySearchText, int maxprice, int minamount) // maxprice per item in copper, 1g = 1 00 00 copper
{
AuctionRequestParams req = new AuctionRequestParams(AuctionCategory.Off, 0, 0, mySearchText, false, ItemGrade.Common, AuctionSortType.Time, SortOrder.Asc);
int pip; // per item price
bool bidreturn;

List<AuctionItem> items = getAuctionBuyList(req, 0);
if(items != null)
{
foreach (AuctionItem item in items)
{
if (!item.item.name.Equals(mySearchText)) // auctionitem item name must match the searchText
continue;

if (Convert.ToInt32(item.time) > waitSecondsForAuctionEnd)
{
pip = (int)item.buyBackPrice / item.item.count;

if (item.item.count < minamount || item.buyBackPrice == 0 || pip > maxprice)
continue;

if (me.goldCount >= item.buyBackPrice)
{
Thread.Sleep(100 + r.Next(150));
bidreturn = item.MakeAuctionBid(item.buyBackPrice);
Thread.Sleep(1000 + r.Next(500));
if (bidreturn)
Log(DateTime.Now.ToShortTimeString() + " > Attempting to BUYOUT " + item.item.count + " " + item.item.name + " with per item price " + pip.ToString() + " ... succeeded !");
else
Log(DateTime.Now.ToShortTimeString() + " > Attempting to BUYOUT " + item.item.count + " " + item.item.name + " with per item price " + pip.ToString() + " ... failed.");
}
else
Log(DateTime.Now.ToShortTimeString() + " > not enough gold to buyout " + item.item.count + " " + item.item.name + " for " + item.buyBackPrice);
}
else // auction items time is nearly over, check if we want to bid on it
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice && item.item.count >= minamount) // check if this is an item below maxprice
{
bidOnAuctionHouse(req, item.uniqId, maxprice);
break;
}
}
}
}
else
{
Log(DateTime.Now.ToShortTimeString() + " > " +GetLastError().ToString() +" Error ... will try again");
}
Thread.Sleep(2000 + r.Next(3000)); // Random sleep 2-5s
}
public void bidOnAuctionHouse(AuctionRequestParams req, ulong itemId, int maxprice)
{
int pip; // per item price
int myBidAmount;
int sleepTime;
bool bidreturn;

List<AuctionItem> items = getAuctionBuyList(req, 9);
foreach (AuctionItem item in items)
{
if (item.uniqId == itemId)
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice)
{
sleepTime = Convert.ToInt32(item.time) * 1000 - Convert.ToInt32(r.Next(500)) - msToBidBeforeAuctionEnd;
Log(DateTime.Now.ToShortTimeString() + " > waiting " + ((int)sleepTime / 1000).ToString() + " seconds to attempt a last-second-bid on " + item.item.count + " " + item.item.name + " (current bid price per item: " + pip + " maxprice: " +maxprice +")");
if (sleepTime > 100)
Thread.Sleep(sleepTime);
break;
}
else
return; // the item has become too expensive
}
}

items = getAuctionBuyList(req, 9);
foreach (AuctionItem item in items)
{
if (item.uniqId == itemId)
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice)
{
myBidAmount = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) + overbidamount;
if (me.goldCount >= myBidAmount)
{
bidreturn = item.MakeAuctionBid(myBidAmount);
Thread.Sleep(1000 + r.Next(500));
if (bidreturn)
Log(DateTime.Now.ToShortTimeString() + " > Successfully sent a BID on " + item.item.count + " " + item.item.name + " with " + myBidAmount + " (pip: " + (myBidAmount/item.item.count) + ")");
else
Log(DateTime.Now.ToShortTimeString() + " > Failed to send a BID on " + item.item.count + " " + item.item.name + " with " + myBidAmount + " (pip: " +(myBidAmount/item.item.count) +")");
}
else
Log(DateTime.Now.ToShortTimeString() + " > not enough gold to bid on " + item.item.count + " " + item.item.name + " with " + myBidAmount);
}
else
return; // the item has become too expensive
}
}
}
}
}
 
Большая просьба напишите пожалуйста в ПМ, кто юзает этог плагин на ru серверах нужна помощь.
 
Hello, im start using this plugin, and have some problems.

-Plugin go to pages, but NEVER bid.

Here is the script, and the log
[HIDE]
Using System;
using System.Drawing;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using ArcheBuddy.Bot.Classes;

namespace OpenAuctionHouse
{
public class OpenAuctionHouse : Core
{
private int overbidamount = 80; // attempt to bid 40c above current bid
private int waitSecondsForAuctionEnd = 180; // if a bid item is at < 3 minutes wait for it to end
private int msToBidBeforeAuctionEnd = 5000; // wait until timeleft = 5 seconds until bidding myself

private Random r = new Random();
public static string GetPluginAuthor()
{
return "lypnn";
}

public static string GetPluginVersion()
{
return "2.3.0.0";
}

public static string GetPluginDescription()
{
return "Open Auction House";
}

//Call on plugin start
public void PluginRun()
{
try
{
Log(DateTime.Now.ToShortTimeString() + " > ----- Open Auction House started -----");

while (true)
{
buyFromAuctionHouse("Faint gale lunadrop", 4480, 1); // 80 copper per item, minimum amount 2
buyFromAuctionHouse("Clear fire lunadrop", 4480, 1); // 50 copper per item, minimum amount 2

// add more items here
}
}
catch (Exception e)
{
if (e.GetType() != typeof(System.Threading.ThreadAbortException))
{
Log(DateTime.Now.ToShortTimeString() +" ERROR " +GetLastError().ToString() +" " +e.GetType().ToString() +" " +e.StackTrace);
Log(e.Message);
}
}
}

//Call on plugin stop
public void PluginStop()
{
Log(DateTime.Now.ToShortTimeString() + " > ----- Open Auction House stopped -----");
}

////////// no variables to edit below this line /////////////

//buyout an auction house item
public void buyFromAuctionHouse(string mySearchText, int maxprice, int minamount) // maxprice per item in copper, 1g = 1 00 00 copper
{
AuctionRequestParams req = new AuctionRequestParams(AuctionCategory.Off, 0, 0, mySearchText, false, ItemGrade.Common, AuctionSortType.Time, SortOrder.Asc);
int pip; // per item price
bool bidreturn;

List<AuctionItem> items = getAuctionBuyList(req, 0);
if(items != null)
{
foreach (AuctionItem item in items)
{
if (!item.item.name.Equals(mySearchText)) // auctionitem item name must match the searchText
continue;

if (Convert.ToInt32(item.time) > waitSecondsForAuctionEnd)
{
pip = (int)item.buyBackPrice / item.item.count;

if (item.item.count < minamount || item.buyBackPrice == 0 || pip > maxprice)
continue;

if (me.goldCount >= item.buyBackPrice)
{
Thread.Sleep(100 + r.Next(150));
bidreturn = item.MakeAuctionBid(item.buyBackPrice);
Thread.Sleep(1000 + r.Next(500));
if (bidreturn)
Log(DateTime.Now.ToShortTimeString() + " > Attempting to BUYOUT " + item.item.count + " " + item.item.name + " with per item price " + pip.ToString() + " ... succeeded !");
else
Log(DateTime.Now.ToShortTimeString() + " > Attempting to BUYOUT " + item.item.count + " " + item.item.name + " with per item price " + pip.ToString() + " ... failed.");
}
else
Log(DateTime.Now.ToShortTimeString() + " > not enough gold to buyout " + item.item.count + " " + item.item.name + " for " + item.buyBackPrice);
}
else // auction items time is nearly over, check if we want to bid on it
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice && item.item.count >= minamount) // check if this is an item below maxprice
{
bidOnAuctionHouse(req, item.uniqId, maxprice);
break;
}
}
}
}
else
{
Log(DateTime.Now.ToShortTimeString() + " > " +GetLastError().ToString() +" Error ... will try again");
}
Thread.Sleep(2000 + r.Next(3000)); // Random sleep 2-5s
}
public void bidOnAuctionHouse(AuctionRequestParams req, ulong itemId, int maxprice)
{
int pip; // per item price
int myBidAmount;
int sleepTime;
bool bidreturn;

List<AuctionItem> items = getAuctionBuyList(req, 9);
foreach (AuctionItem item in items)
{
if (item.uniqId == itemId)
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice)
{
sleepTime = Convert.ToInt32(item.time) * 1000 - Convert.ToInt32(r.Next(500)) - msToBidBeforeAuctionEnd;
Log(DateTime.Now.ToShortTimeString() + " > waiting " + ((int)sleepTime / 1000).ToString() + " seconds to attempt a last-second-bid on " + item.item.count + " " + item.item.name + " (current bid price per item: " + pip + " maxprice: " +maxprice +")");
if (sleepTime > 100)
Thread.Sleep(sleepTime);
break;
}
else
return; // the item has become too expensive
}
}

items = getAuctionBuyList(req, 9);
foreach (AuctionItem item in items)
{
if (item.uniqId == itemId)
{
pip = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) / item.item.count;
if (pip + overbidamount <= maxprice)
{
myBidAmount = (item.bidMoney != 0 ? item.bidMoney : item.sellPrice) + overbidamount;
if (me.goldCount >= myBidAmount)
{
bidreturn = item.MakeAuctionBid(myBidAmount);
Thread.Sleep(1000 + r.Next(500));
if (bidreturn)
Log(DateTime.Now.ToShortTimeString() + " > Successfully sent a BID on " + item.item.count + " " + item.item.name + " with " + myBidAmount + " (pip: " + (myBidAmount/item.item.count) + ")");
else
Log(DateTime.Now.ToShortTimeString() + " > Failed to send a BID on " + item.item.count + " " + item.item.name + " with " + myBidAmount + " (pip: " +(myBidAmount/item.item.count) +")");
}
else
Log(DateTime.Now.ToShortTimeString() + " > not enough gold to bid on " + item.item.count + " " + item.item.name + " with " + myBidAmount);
}
else
return; // the item has become too expensive
}
}
}
}
}[/HIDE]

16:02 > ----- Open Auction House started -----
16:07 > ----- Open Auction House stopped -----

Few items end in the 5mins, but bot dont do anything. Only see the pages of items.
Don't buy, and dont bid.

Need special name of the dll and the cs? and the folder?


I'm having this same problem. I find a stack of stone bricks that sells for 10g (or 10s each). I put the line

buyFromAuctionHouse("Stone brick", 2000, 1)

so as to bid on any stone bricks that sell for 20s each or less, but it only flips through the pages and never bids. Is it because it's waiting on waitSecondsForAuctionEnd or msToBidBeforeAuctionEnd to place the bid? I'm a little confused as to what those 2 variables do.
 
Back
Top