Showing posts with label Strategy. Show all posts
Showing posts with label Strategy. Show all posts

Wednesday, 8 June 2011

Dealing with obsessive campers - Part II advanced

IMPORTANT NOTE: This article is intended for advanced users who can edit the program code of a mod. If you don't feel comfortable using a text editor to edit a mod then don't try this!


I'm an old C programmer so while I don't know lua well enough to write a mod from scratch it is a simple language making it trivial to edit a mod to calculate prices differently. I use TSM (TradeSkillMaster) and I make 2 modifications in post.lua.

The first change is really simple. All it does is change the way TSM's "maximum price" setting percentage is used. It compares the current lowest buyout price to fallback price * maximum price percentage. Adjust the "maximum price" setting to determine what percentage you want to multiply fallback by.

If the current price is greater than than fallback * maximum then it posts at fallback * maximum.  If the current price is greater than fallback but less than fallback * maximum then it just posts at fallback.

This is extremely useful for quickly yanking prices back into a sane range when someone tries to buy it all out and jack prices up insanely high. Of course he'll be camping hardcore until prices get back to normal. This ensures they get back to normal quickly.

So for example if your fallback is 100g, maximum price is set at 200% and the current price is over 200g, it'll post at 200g, if the price is over 100g but 200g or less, it'll post at 100g. If the price is 100g or less it will calculate undercuts as normal.

Just after line 405 in post.lua you'll find a code snippet something like this

-- Check if we're posting something too high
if buyout > (fallback * TSMAuc.Config:GetConfigValue(itemID, "fallbackCap")) then
buyout = fallback
fallbackCap = true
end

Cut that code out and replace it with this.

-- Check if we're posting something too high
if buyout > (fallback * TSMAuc.Config:GetConfigValue(itemID, "fallbackCap")) then
buyout = (fallback * TSMAuc.Config:GetConfigValue(itemID, "fallbackCap"))
fallbackCap = true
elseif buyout > fallback then
buyout = fallback
fallbackCap = true
end


The second change doesn't replace any code, it simply adds a new bit of code that changes the price calculation. ANY undercut value of 50c or less is considered to be a PERCENTAGE. This bit of code calculates the difference between the current lowest price and your threshold, then undercuts by 1-50% of that. The higher the current price is the bigger the undercuts will be but they'll get progressively smaller and smaller as the price approaches threshold. Set the bid to 1-50c to adjust just how aggressively it undercuts and therefore how quickly it brings prices down. If you use this edit too, make sure it goes directly above the first edit or it won't work correctly.

Note: I don't recommend using the second change with a blacklist. If there are any names on your blacklist it could cause you to post extremely low since TSM ignores thresholds for blacklisted names.

  -- Do percentage undercuts as a percentage of the difference between the
  -- current lowest price and our threshold using undercut settings less than 50c as 1-50%
if lowestBuyout > threshold then
  local tempp = TSMAuc.Config:GetConfigValue(itemID, "undercut")
  if tempp <= 50 then
    -- consider an undercut of 0c to be 10% and prevent divide by 0 errors
    if tempp < 1 then
        tempp = 10
      end
      buyout = lowestBuyout - ((lowestBuyout - threshold)/(100/tempp))
  end
  -- do nothing, the undercut setting was a real undercut value not a percentage
  end

Dealing with obsessive campers

Campers... The lowest form of life in the game. Those greedy bloodsucking leeches who spend every waking minute camping the auction, constantly spamming cancel and repost so they always have 1 or 2 of every profitable item up for 1c less than anyone else.

How to deal with them effectively?

First you have to understand the Camper mentality. Campers are like those losers you see lined up in front of the VLTs at the local bar every 2nd Wednesday with fresh welfare checks in hand. They're addicted. They can't stop. As long the lights keep flashing with a payout they'll keep plugging more items into the auction as fast as their mods can cancel and repost. Part time / Occasional campers aren't a big deal, they camp for a few hours and then they move on to doing something else. The real problem is the obsessive camper who's seemingly always online and constantly undercutting.

The obsessive camper undercuts by 1c to maximize his profit per item. He attempts to completely control and dominate sales of everything he camps. He'll usually post just 1 or 2 of most items and reposts replacements as fast as they sell. He's greedy, trying to get all the sales of all the highest priced items and will drive prices into the ground if he thinks it might drive his competition out of business or allow him to buy it all up cheaply and repost at ridiculous markups. He always seems to be there jealously guarding what he considers his markets.

Worst of all are the ones that bot. This type of camper doesn't just seem to be there all the time, he actually is there all time. Canceling and reposting his 1 or 2 of virtually everything within a minute or two of anyone undercutting him 24 hours a day, 7 days a week for months and even years on end. Even when it looks like he's actually offline for the first time in ages all you need to do is post a few items and he'll appear like magic within minutes to undercut you again. He'll drive prices right into the dirt, then wait till all the competition logs off, buy it out and repost for 10x, 100x, even 1000x more, knowing that all he has to do is sell just one at a ridiculously high price and it pays for buying all of them. He'll repeat this endlessly attempting to break the competition's will and make them give up. He very rarely runs out of anything in spite of completely dominating sales.


Blizzard won't ban him unless he's dumb enough to use an old bot they can actually detect or they catch him red handed selling gold. In fact they'll make up excuses for him when you point out he hasn't been offline for X years and he's posted every minute or two the whole time. How do you beat him?


One way is to camp the camper. When he's camping the auction you camp him and undercut him by 1c just as fast as or faster than he undercuts you. The problem with that is now you're playing his game. Still if he's not botting and you're online as much or more than he is this can be very effective. But if he's online more than you are he's going to win that game and if he's the bot type you have no chance of competing with him for long.


The other way and the one I find works best is to undercut steeply and drive prices down fast. After all the whole point of his camping is to get all (or at least the vast majority) of high profit sales. If profits aren't high he'll be less inclined to camp.

Don't pull your posts like he does. Post your items for 24 or 48 hours and leave them up. When he undercuts just keep posting more with steep undercuts making it very costly for him to buy you out and raise prices sky high when you're not online. The idea is to make sure your undercuts are steep enough and the final price low enough he's going to wonder if it's worth his time to spend the next 48 hours stopping your posts from selling... Yet you have enough posted at progressively higher prices that he really doesn't want to buy them all out either and when he does stop camping you'll still make decent profits.

Check the auction frequently throughout the day and keep enough items up that he doesn't dare buy you out. When he does buy you out anyhow, post more as soon as possible for slightly more and in even greater numbers than the last time. Find his real thresholds, the prices he doesn't like posting under and the prices he won't buy you out in bulk at. He will bluff, posting lower and lower to see how low you'll go before he buys you out. Don't worry if he catches you like that a few times, just raise your prices 10-20%, post even more and see if he'll buy you out there too.

Keep it up for as long as it takes until he stops camping.. At that point your stuff will start selling with the price going up as it sells. With a persistent camper it could take a long time, weeks or even months before it works but it does work. Then you can let prices go up slightly but not too much. He's probably waiting for that and ready to jump right back in as soon as he thinks profits are high enough to justify his time again.

The biggest problem is finding undercut values that work well to drive prices down quickly enough when they're high to discourage camping, yet don't drive them right to threshold too soon when they're already low. For example, with gems a 5g undercut might be too little to deter campers much at all when prices are at 200g and yet drive prices down to cost too quickly when prices are already under 20g. But 10%, 20% or some other percentage of the difference between the lowest price you're willing to sell at and the current lowest price might work perfectly.

Tomorrow's post will go into specifics of how I modify my posting mod's price calculations to better deal with campers.