Advertisement
BilisOnyxia

Classic Sniper Setup

Oct 1st, 2019
25,613
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.02 KB | None | 0 0
  1. _ _ _ _ _ _
  2. | | | | | | | | (_) | _
  3. | |__| | _____ __ | |_ ___ ___ ___| |_ _| |_ _ _ _ __(_)
  4. | __ |/ _ \ \ /\ / / | __/ _ \ / __|/ _ \ __| | | __| | | | | '_ \
  5. | | | | (_) \ V V / | || (_) | \__ \ __/ |_ | | |_ | |_| | |_) |
  6. |_| |_|\___/ \_/\_/ \__\___/ |___/\___|\__| |_|\__| \__,_| .__(_)
  7. | |
  8. |_|
  9.  
  10. 1) Under TSM -> Settings -> Custom Sources, add a new custom price source. Change its name from "custompricea" to "minprice" and hit enter.
  11. Then click into the right column and copy this as the Custom Price Source value:
  12.  
  13. max(min(DBHistorical, DBRegionMarketAvg, DBRegionHistorical), VendorSell)
  14.  
  15. If you want to be really cautious, you can also add DBMarket and/or DBMinBuyout to this pricing string.
  16. Then it would look like this for example:
  17.  
  18. max(min(DBMinBuyout, DBMarket, DBHistorical, DBRegionMarketAvg, DBRegionHistorical), VendorSell)
  19.  
  20. By adding these price sources, your sniper operation will be much more picky, which means you will find a lot fewer deals,
  21. but the deals that do pop up in your sniper results will be more likely to actually be worth buying.
  22.  
  23. ------------------------------------------------------------------------------------------------------------------------------------------
  24.  
  25. 2) Once you have set up the "minprice" custom pricesource, do a /reload. After the reload, create a new sniper operation under TSM -> Operations -> Sniper.
  26.  
  27. Set the "Below Custom Price" setting to
  28.  
  29. max(ifgte(ItemQuality, 1, minprice * ifgte(minprice, 250g, 80, ifgte(minprice, 100g, (minprice - 100g) * (80 - 70) / (250g - 100g) + 70, ifgte(minprice, 50g, (minprice - 50g) * (70 - 60) / (100g - 50g) + 60, ifgte(minprice, 10g, (minprice - 10g) * (60 - 40) / (50g - 10g) + 50, ifgte(minprice, 5g, (minprice - 5g) * (40 - 30) / (10g - 5g) + 30, ifgte(minprice, 1g, (minprice - 1g) * (30 - 10) / (5g - 1g) + 10, 0)))))) / 100), VendorSell - 1c)
  30.  
  31. and hit enter to save your changes.
  32.  
  33. ------------------------------------------------------------------------------------------------------------------------------------------
  34.  
  35. 3) Assign the sniper operation you just created to the Base Group and any other groups you want it to apply to.
  36. The operation that is assigned to the Base Group applies to all ungrouped items.
  37.  
  38. ------------------------------------------------------------------------------------------------------------------------------------------
  39. ------------------------------------------------------------------------------------------------------------------------------------------
  40. _ _ _ _ _ _ ___
  41. | | | | | | (_) | | | |__ \
  42. | |__| | _____ __ __| | ___ ___ ___ _| |_ __ _____ _ __| | __ ) |
  43. | __ |/ _ \ \ /\ / / / _` |/ _ \ / _ \/ __| | | __| \ \ /\ / / _ \| '__| |/ // /
  44. | | | | (_) \ V V / | (_| | (_) | __/\__ \ | | |_ \ V V / (_) | | | <|_|
  45. |_| |_|\___/ \_/\_/ \__,_|\___/ \___||___/ |_|\__| \_/\_/ \___/|_| |_|\_(_)
  46.  
  47. The sniper string will calculate a number between 0 and 80 and use this as the percentage of an item's minprice value we are willing to pay. The higher the value of an item, the higher the percentage we use. An item that has a minprice value of 500g for example would show up as long as it gets posted at or below 80% of its value, so at or below 80% 500g = 400g. But an item that is only valued at 5g would only show up if it gets posted at or below 30% 5g = 1g50s.
  48. In addition to that, the sniper string will also always show you all items that get posted below their VendorSell price, and it will completely exclude all grey quality items (unless they get listed below their VendorSell price).
  49.  
  50. The idea behind this is that we really do not want to miss valuable items when they get posted for cheap, so we want to see them even if they get listed just a little bit below their minprice value. We can then still manually decide whether or not we actually want to buy the item. But for lower value items we only want to get notified if they get posted really cheap, otherwise it is not worth our time to even bother with them and we do not want our sniper to get flooded with low value items that aren't actually great deals.
  51.  
  52. Now, how does the string decide which percentage to use for which item?
  53.  
  54. I have defined 6 (value | percentage) pairs that look like this:
  55.  
  56. (1g | 10%)
  57. (5g | 30%)
  58. (10g | 40%)
  59. (50g | 60%)
  60. (100g | 70%)
  61. (250g and above | 80%)
  62.  
  63. Each of these value pairs represents a blue dot on this graph:
  64.  
  65. https://i.imgur.com/PO9fLJS.png
  66.  
  67. In addition to this, all items that are valued below the value of the first (value | percentage) pair, so below 1g, will use 0% - so items valued below 1g will be completely excluded and they will never show up (unless they get posted below their VendorSell price).
  68.  
  69. This means an item valued at 50g will show up if it gets posted at or below 60% of its value, and an item valued at 10g will show up if it gets posted at or below 40% of its value.
  70.  
  71. You might now ask yourself: "But what about an item valued at 30g? There is no percentage defined for that value, right?"
  72. This is where the math-stuff of the string comes into play. The string dynamically calculates the percentage that should be used for any given value.
  73.  
  74. Take 30g for example. The percentage for 10g is defined as 40% and the percentage to be used for 50g is defined as 60%. Since 30g is half way between 10g and 50g, it will use 50% as its percentage, because that is half way between 40% and 60%.
  75.  
  76. ------------------------------------------------------------------------------------------------------------------------------------------
  77. ------------------------------------------------------------------------------------------------------------------------------------------
  78.  
  79. _ _ _ _ _ __ _ _ _ _
  80. | | | | | | | (_)/ _| | | | | | | (_) _
  81. | |__| | _____ __ | |_ ___ _ __ ___ ___ __| |_| |_ _ _ | |_| |__ ___ ___| |_ _ __ _ _ __ __ _(_)
  82. | __ |/ _ \ \ /\ / / | __/ _ \ | '_ ` _ \ / _ \ / _` | | _| | | | | __| '_ \ / _ \ / __| __| '__| | '_ \ / _` |
  83. | | | | (_) \ V V / | || (_) | | | | | | | (_) | (_| | | | | |_| | | |_| | | | __/ \__ \ |_| | | | | | | (_| |_
  84. |_| |_|\___/ \_/\_/ \__\___/ |_| |_| |_|\___/ \__,_|_|_| \__, | \__|_| |_|\___| |___/\__|_| |_|_| |_|\__, (_)
  85. __/ | __/ |
  86. |___/ |___/
  87.  
  88. In case you want to adjust the string to better fit your needs, you can easily move around the blue points on the graph by adjusting the values of the 6 defined value pairs. The percentages for items with values between the defined values will follow accordingly.
  89.  
  90. Let's say for example you want to move the (10g|40%) point (the third point on the graph from the left) a little further to the right. You can simply change every occurrence of "10g" in the string to "20g" for example.
  91.  
  92. But things can get a little confusing if you want to change many of the values and percentages. So instead of changing my existing values, you can use this string (this is not an actual TSM string):
  93.  
  94. max(ifgte(ItemQuality, 1, minprice * ifgte(minprice, Value6, Percentage6, ifgte(minprice, Value5, (minprice - Value5) * (Percentage6 - Percentage5) / (Value6 - Value5) + Percentage5, ifgte(minprice, Value4, (minprice - Value4) * (Percentage5 - Percentage4) / (Value5 - Value4) + Percentage4, ifgte(minprice, Value3, (minprice - Value3) * (Percentage4 - Percentage3) / (Value4 - Value3) + 50, ifgte(minprice, Value2, (minprice - Value2) * (Percentage3 - Percentage2) / (Value3 - Value2) + Percentage2, ifgte(minprice, Value1, (minprice - Value1) * (Percentage2 - Percentage1) / (Value2 - Value1) + Percentage1, Percentage0)))))) / 100), VendorSell - 1c)
  95.  
  96. Simply copy this string into a texteditor of your choice and use the Find&Replace function to replace the value and percentage placeholders with the values and percentages you want to use.
  97.  
  98. Values need to be replaced with actual gold values like "250g" and Percentages need to be replaced with simple numbers, without a percent symbol, like this for example "80".
  99.  
  100. Value1 represents the value of the cheapest value point and Percentage1 represents the percentage that will be used for items of that value.
  101. Value6 represents the value of the most expensive value point and Percentage6 represents the percentage that will be used for items of that value.
  102.  
  103. Percentage0 is special. This is the percentage that will be used for items that are valued at less than the value you replaced Value1 with. In my original string I use "0". That way, I am excluding items with a minprice value of less than 1g, which is my lowest value point.
  104.  
  105. To better illustrate how this works, here's a side-by-side comparison for what I replaced these placeholders with to arrive at my sniper string:
  106.  
  107. Percentage0 = 0
  108.  
  109. Value1 = 1g
  110. Percentage1 = 10
  111.  
  112. Value2 = 5g
  113. Percentage2 = 30
  114.  
  115. Value3 = 10g
  116. Percentage3 = 40
  117.  
  118. Value4 = 50g
  119. Percentage4 = 60
  120.  
  121. Value5 = 100g
  122. Percentage5 = 70
  123.  
  124. Value6 = 250g
  125. Percentage6 = 80
  126.  
  127. ------------------------------------------------------------------------------------------------------------------------------------------
  128. ------------------------------------------------------------------------------------------------------------------------------------------
  129.  
  130. That's it, you are good to go!
  131. You can now open the AH and run a sniper scan. The sniper scan will continuously scan the last page of the AH that contains the most recently posted 1-50 auctions over and over again and will inform you of any auction it sees that is listed below your sniper price.
  132.  
  133. Happy sniping!
  134.  
  135. - BilisOnyxia
  136.  
  137.  
  138. ------------------------------------------------------------------------------------------------------------------------------------------
  139. ------------------------------------------------------------------------------------------------------------------------------------------
  140.  
  141. Video-Guides:
  142.  
  143. There also is an amazing videoguide created by Sheyrah on how to set everything up, where she even went a little further by creating a separate sniper profile with different groups. Even though her video is for retail WoW, not Classic and she is showcasing an older version of my sniper string, I'd highly recommend to watch the entire video as she does a fantastic job of explaining everything in depth.
  144.  
  145. https://www.youtube.com/watch?v=2v-JeIkmCGE
  146.  
  147.  
  148. Hikons also kindly put out a video guide for my sniper setup:
  149.  
  150. https://www.youtube.com/watch?v=mbLAxVKoKP0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement