diff options
Diffstat (limited to 'src/game/AuctionHouseBot.h')
| -rw-r--r-- | src/game/AuctionHouseBot.h | 375 |
1 files changed, 303 insertions, 72 deletions
diff --git a/src/game/AuctionHouseBot.h b/src/game/AuctionHouseBot.h index 3a224b8f752..8d5c067a354 100644 --- a/src/game/AuctionHouseBot.h +++ b/src/game/AuctionHouseBot.h @@ -8,16 +8,22 @@ #define AHB_GREEN 2 #define AHB_BLUE 3 #define AHB_PURPLE 4 +#define AHB_ORANGE 5 +#define AHB_YELLOW 6 #define AHB_GREY_TG 0 #define AHB_WHITE_TG 1 #define AHB_GREEN_TG 2 #define AHB_BLUE_TG 3 #define AHB_PURPLE_TG 4 -#define AHB_GREY_I 5 -#define AHB_WHITE_I 6 -#define AHB_GREEN_I 7 -#define AHB_BLUE_I 8 -#define AHB_PURPLE_I 9 +#define AHB_ORANGE_TG 5 +#define AHB_YELLOW_TG 6 +#define AHB_GREY_I 7 +#define AHB_WHITE_I 8 +#define AHB_GREEN_I 9 +#define AHB_BLUE_I 10 +#define AHB_PURPLE_I 11 +#define AHB_ORANGE_I 12 +#define AHB_YELLOW_I 13 #define AHBplayerAccount sConfig.GetIntDefault("AuctionHouseBot.Account", 0) #define AHBplayerGUID sConfig.GetIntDefault("AuctionHouseBot.GUID", 0) #define ItemsPerCycle sConfig.GetIntDefault("AuctionHouseBot.ItemsPerCycle", 200) @@ -28,18 +34,30 @@ class AHBConfig { private: uint32 AHID; + uint32 AHFID; uint32 minItems; uint32 maxItems; uint32 minTime; uint32 maxTime; + uint32 percentGreyTradeGoods; uint32 percentWhiteTradeGoods; uint32 percentGreenTradeGoods; uint32 percentBlueTradeGoods; uint32 percentPurpleTradeGoods; + uint32 percentOrangeTradeGoods; + uint32 percentYellowTradeGoods; + uint32 percentGreyItems; uint32 percentWhiteItems; uint32 percentGreenItems; uint32 percentBlueItems; uint32 percentPurpleItems; + uint32 percentOrangeItems; + uint32 percentYellowItems; + uint32 minPriceGrey; + uint32 maxPriceGrey; + uint32 minBidPriceGrey; + uint32 maxBidPriceGrey; + uint32 maxStackGrey; uint32 minPriceWhite; uint32 maxPriceWhite; uint32 minBidPriceWhite; @@ -60,27 +78,60 @@ class AHBConfig uint32 minBidPricePurple; uint32 maxBidPricePurple; uint32 maxStackPurple; + uint32 minPriceOrange; + uint32 maxPriceOrange; + uint32 minBidPriceOrange; + uint32 maxBidPriceOrange; + uint32 maxStackOrange; + uint32 minPriceYellow; + uint32 maxPriceYellow; + uint32 minBidPriceYellow; + uint32 maxBidPriceYellow; + uint32 maxStackYellow; uint32 buyerPriceGrey; uint32 buyerPriceWhite; uint32 buyerPriceGreen; uint32 buyerPriceBlue; uint32 buyerPricePurple; + uint32 buyerPriceOrange; + uint32 buyerPriceYellow; uint32 buyerBiddingInterval; uint32 buyerBidsPerInterval; - uint32 wtgp; - uint32 gtgp; - uint32 btgp; - uint32 ptgp; - uint32 wip; - uint32 gip; - uint32 bip; - uint32 pip; + uint32 greytgp; + uint32 whitetgp; + uint32 greentgp; + uint32 bluetgp; + uint32 purpletgp; + uint32 orangetgp; + uint32 yellowtgp; + uint32 greyip; + uint32 whiteip; + uint32 greenip; + uint32 blueip; + uint32 purpleip; + uint32 orangeip; + uint32 yellowip; public: AHBConfig(uint32 ahid) { AHID = ahid; + switch(ahid) + { + case 2: + AHFID = 55; + break; + case 6: + AHFID = 29; + break; + case 7: + AHFID = 120; + break; + default: + AHFID = 120; + break; + } } AHBConfig() { @@ -89,6 +140,10 @@ class AHBConfig { return AHID; } + uint32 GetAHFID() + { + return AHFID; + } void SetMinItems(uint32 value) { minItems = value; @@ -132,9 +187,9 @@ class AHBConfig { return maxTime; } - void SetPercentages(uint32 wtg, uint32 gtg, uint32 btg, uint32 ptg, uint32 wi, uint32 gi, uint32 bi, uint32 pi) + void SetPercentages(uint32 greytg, uint32 whitetg, uint32 greentg, uint32 bluetg, uint32 purpletg, uint32 orangetg, uint32 yellowtg, uint32 greyi, uint32 whitei, uint32 greeni, uint32 bluei, uint32 purplei, uint32 orangei, uint32 yellowi) { - uint32 totalPercent = wtg + gtg + btg + ptg + wi + gi + bi + pi; + uint32 totalPercent = greytg + whitetg + greentg + bluetg + purpletg + orangetg + yellowtg + greyi + whitei + greeni + bluei + purplei + orangei + yellowi; if (totalPercent == 0) { @@ -142,26 +197,35 @@ class AHBConfig } else if (totalPercent != 100) { - double scale = (double) 100 / (double) totalPercent; - - wtg = (uint32) (scale * (double) pi); - gtg = (uint32) (scale * (double) gtg); - btg = (uint32) (scale * (double) btg); - ptg = (uint32) (scale * (double) ptg); - wi = (uint32) (scale * (double) wi); - gi = (uint32) (scale * (double) gi); - bi = (uint32) (scale * (double) bi); - pi = 100 - wtg - gtg - btg - ptg - wi - gi - bi; - + greytg = 0; + whitetg = 27; + greentg = 12; + bluetg = 10; + purpletg = 1; + orangetg = 0; + yellowtg = 0; + greyi = 0; + whitei = 10; + greeni = 30; + bluei = 8; + purplei = 2; + orangei = 0; + yellowi = 0; } - percentWhiteTradeGoods = wtg; - percentGreenTradeGoods = gtg; - percentBlueTradeGoods = btg; - percentPurpleTradeGoods = ptg; - percentWhiteItems = wi; - percentGreenItems = gi; - percentBlueItems = bi; - percentPurpleItems = pi; + percentGreyTradeGoods = greytg; + percentWhiteTradeGoods = whitetg; + percentGreenTradeGoods = greentg; + percentBlueTradeGoods = bluetg; + percentPurpleTradeGoods = purpletg; + percentOrangeTradeGoods = orangetg; + percentYellowTradeGoods = yellowtg; + percentGreyItems = greyi; + percentWhiteItems = whitei; + percentGreenItems = greeni; + percentBlueItems = bluei; + percentPurpleItems = purplei; + percentOrangeItems = orangei; + percentYellowItems = yellowi; CalculatePercents(); } uint32 GetPercentages(uint32 color) @@ -169,7 +233,7 @@ class AHBConfig switch(color) { case AHB_GREY_TG: - return 0; + return percentGreyTradeGoods; break; case AHB_WHITE_TG: return percentWhiteTradeGoods; @@ -183,8 +247,14 @@ class AHBConfig case AHB_PURPLE_TG: return percentPurpleTradeGoods; break; + case AHB_ORANGE_TG: + return percentOrangeTradeGoods; + break; + case AHB_YELLOW_TG: + return percentYellowTradeGoods; + break; case AHB_GREY_I: - return 0; + return percentGreyItems; break; case AHB_WHITE_I: return percentWhiteItems; @@ -198,6 +268,12 @@ class AHBConfig case AHB_PURPLE_I: return percentPurpleItems; break; + case AHB_ORANGE_I: + return percentOrangeItems; + break; + case AHB_YELLOW_I: + return percentYellowItems; + break; default: return 0; break; @@ -208,6 +284,7 @@ class AHBConfig switch(color) { case AHB_GREY: + minPriceGrey = value; break; case AHB_WHITE: minPriceWhite = value; @@ -221,6 +298,12 @@ class AHBConfig case AHB_PURPLE: minPricePurple = value; break; + case AHB_ORANGE: + minPriceOrange = value; + break; + case AHB_YELLOW: + minPriceYellow = value; + break; default: break; } @@ -231,7 +314,12 @@ class AHBConfig { case AHB_GREY: { - return 0; + if (minPriceGrey == 0) + return 100; + else if (minPriceGrey > maxPriceGrey) + return maxPriceGrey; + else + return minPriceGrey; break; } case AHB_WHITE: @@ -274,6 +362,26 @@ class AHBConfig return minPricePurple; break; } + case AHB_ORANGE: + { + if (minPriceOrange == 0) + return 400; + else if (minPriceOrange > maxPriceOrange) + return maxPriceOrange; + else + return minPriceOrange; + break; + } + case AHB_YELLOW: + { + if (minPriceYellow == 0) + return 500; + else if (minPriceYellow > maxPriceYellow) + return maxPriceYellow; + else + return minPriceYellow; + break; + } default: { return 0; @@ -286,6 +394,7 @@ class AHBConfig switch(color) { case AHB_GREY: + maxPriceGrey = value; break; case AHB_WHITE: maxPriceWhite = value; @@ -299,6 +408,12 @@ class AHBConfig case AHB_PURPLE: maxPricePurple = value; break; + case AHB_ORANGE: + maxPriceOrange = value; + break; + case AHB_YELLOW: + maxPriceYellow = value; + break; default: break; } @@ -309,7 +424,10 @@ class AHBConfig { case AHB_GREY: { - return 0; + if (maxPriceGrey == 0) + return 150; + else + return maxPriceGrey; break; } case AHB_WHITE: @@ -344,6 +462,22 @@ class AHBConfig return maxPricePurple; break; } + case AHB_ORANGE: + { + if (maxPriceOrange == 0) + return 550; + else + return maxPriceOrange; + break; + } + case AHB_YELLOW: + { + if (maxPriceYellow == 0) + return 650; + else + return maxPriceYellow; + break; + } default: { return 0; @@ -356,6 +490,7 @@ class AHBConfig switch(color) { case AHB_GREY: + minBidPriceGrey = value; break; case AHB_WHITE: minBidPriceWhite = value; @@ -369,6 +504,12 @@ class AHBConfig case AHB_PURPLE: minBidPricePurple = value; break; + case AHB_ORANGE: + minBidPriceOrange = value; + break; + case AHB_YELLOW: + minBidPriceYellow = value; + break; default: break; } @@ -379,7 +520,10 @@ class AHBConfig { case AHB_GREY: { - return 0; + if (minBidPriceGrey > 100) + return 100; + else + return minBidPriceGrey; break; } case AHB_WHITE: @@ -414,6 +558,22 @@ class AHBConfig return minBidPricePurple; break; } + case AHB_ORANGE: + { + if (minBidPriceOrange > 100) + return 100; + else + return minBidPriceOrange; + break; + } + case AHB_YELLOW: + { + if (minBidPriceYellow > 100) + return 100; + else + return minBidPriceYellow; + break; + } default: { return 0; @@ -426,6 +586,7 @@ class AHBConfig switch(color) { case AHB_GREY: + maxBidPriceGrey = value; break; case AHB_WHITE: maxBidPriceWhite = value; @@ -439,6 +600,12 @@ class AHBConfig case AHB_PURPLE: maxBidPricePurple = value; break; + case AHB_ORANGE: + maxBidPriceOrange = value; + break; + case AHB_YELLOW: + maxBidPriceYellow = value; + break; default: break; } @@ -449,7 +616,10 @@ class AHBConfig { case AHB_GREY: { - return 0; + if (maxBidPriceGrey > 100) + return 100; + else + return maxBidPriceGrey; break; } case AHB_WHITE: @@ -484,6 +654,22 @@ class AHBConfig return maxBidPricePurple; break; } + case AHB_ORANGE: + { + if (maxBidPriceOrange > 100) + return 100; + else + return maxBidPriceOrange; + break; + } + case AHB_YELLOW: + { + if (maxBidPriceYellow > 100) + return 100; + else + return maxBidPriceYellow; + break; + } default: { return 0; @@ -496,6 +682,7 @@ class AHBConfig switch(color) { case AHB_GREY: + maxStackGrey = value; break; case AHB_WHITE: maxStackWhite = value; @@ -509,6 +696,12 @@ class AHBConfig case AHB_PURPLE: maxStackPurple = value; break; + case AHB_ORANGE: + maxStackOrange = value; + break; + case AHB_YELLOW: + maxStackYellow = value; + break; default: break; } @@ -519,7 +712,7 @@ class AHBConfig { case AHB_GREY: { - return 0; + return maxStackGrey; break; } case AHB_WHITE: @@ -542,6 +735,16 @@ class AHBConfig return maxStackPurple; break; } + case AHB_ORANGE: + { + return maxStackOrange; + break; + } + case AHB_YELLOW: + { + return maxStackYellow; + break; + } default: { return 0; @@ -568,6 +771,12 @@ class AHBConfig case AHB_PURPLE: buyerPricePurple = value; break; + case AHB_ORANGE: + buyerPriceOrange = value; + break; + case AHB_YELLOW: + buyerPriceYellow = value; + break; default: break; } @@ -591,6 +800,12 @@ class AHBConfig case AHB_PURPLE: return buyerPricePurple; break; + case AHB_ORANGE: + return buyerPriceOrange; + break; + case AHB_YELLOW: + return buyerPriceYellow; + break; default: return 0; break; @@ -606,62 +821,79 @@ class AHBConfig } void CalculatePercents() { - wtgp = (uint32) (((double)percentWhiteTradeGoods / 100.0) * maxItems); - gtgp = (uint32) (((double)percentGreenTradeGoods / 100.0) * maxItems); - btgp = (uint32) (((double)percentBlueTradeGoods / 100.0) * maxItems); - ptgp = (uint32) (((double)percentPurpleTradeGoods / 100.0) * maxItems); - wip = (uint32) (((double)percentWhiteItems / 100.0) * maxItems); - gip = (uint32) (((double)percentGreenItems / 100.0) * maxItems); - bip = (uint32) (((double)percentBlueItems / 100.0) * maxItems); - pip = (uint32) (((double)percentPurpleItems / 100.0) * maxItems); - uint32 total = wtgp + gtgp + btgp + ptgp + wip + gip + bip + pip; - if (total != maxItems) + greytgp = (uint32) (((double)percentGreyTradeGoods / 100.0) * maxItems); + whitetgp = (uint32) (((double)percentWhiteTradeGoods / 100.0) * maxItems); + greentgp = (uint32) (((double)percentGreenTradeGoods / 100.0) * maxItems); + bluetgp = (uint32) (((double)percentBlueTradeGoods / 100.0) * maxItems); + purpletgp = (uint32) (((double)percentPurpleTradeGoods / 100.0) * maxItems); + orangetgp = (uint32) (((double)percentOrangeTradeGoods / 100.0) * maxItems); + yellowtgp = (uint32) (((double)percentYellowTradeGoods / 100.0) * maxItems); + greyip = (uint32) (((double)percentGreyItems / 100.0) * maxItems); + whiteip = (uint32) (((double)percentWhiteItems / 100.0) * maxItems); + greenip = (uint32) (((double)percentGreenItems / 100.0) * maxItems); + blueip = (uint32) (((double)percentBlueItems / 100.0) * maxItems); + purpleip = (uint32) (((double)percentPurpleItems / 100.0) * maxItems); + orangeip = (uint32) (((double)percentOrangeItems / 100.0) * maxItems); + yellowip = (uint32) (((double)percentYellowItems / 100.0) * maxItems); + uint32 total = greytgp + whitetgp + greentgp + bluetgp + purpletgp + orangetgp + yellowtgp + greyip + whiteip + greenip + blueip + purpleip + orangeip + yellowip; + int32 diff = (maxItems - total); + if (diff < 0) + { + if ((whiteip - diff) > 0) + whiteip -= diff; + else if ((greenip - diff) > 0) + greenip -= diff; + } + else if (diff < 0) { - wtgp = (uint32) (maxItems * (double) wtgp); - gtgp = (uint32) (maxItems * (double) gtgp); - btgp = (uint32) (maxItems * (double) btgp); - ptgp = (uint32) (maxItems * (double) ptgp); - wip = (uint32) (maxItems * (double) wip); - gip = (uint32) (maxItems * (double) gip); - bip = (uint32) (maxItems * (double) bip); - pip = (maxItems - (wtgp + gtgp + btgp + ptgp + wip + gip + bip)); - total = wtgp + gtgp + btgp + ptgp + wip + gip + bip + pip; + whiteip += diff; } - //sLog.outString("%u %u %u %u %u %u %u %u", wtgp, gtgp, btgp, ptgp, wip, gip, bip, pip); } uint32 GetPercents(uint32 color) { switch(color) { case AHB_GREY_TG: - return 0; + return greytgp; break; case AHB_WHITE_TG: - return wtgp; + return whitetgp; break; case AHB_GREEN_TG: - return gtgp; + return greentgp; break; case AHB_BLUE_TG: - return btgp; + return bluetgp; break; case AHB_PURPLE_TG: - return ptgp; + return purpletgp; + break; + case AHB_ORANGE_TG: + return orangetgp; + break; + case AHB_YELLOW_TG: + return yellowtgp; break; case AHB_GREY_I: - return 0; + return greyip; break; case AHB_WHITE_I: - return wip; + return whiteip; break; case AHB_GREEN_I: - return gip; + return greenip; break; case AHB_BLUE_I: - return bip; + return blueip; break; case AHB_PURPLE_I: - return pip; + return purpleip; + break; + case AHB_ORANGE_I: + return orangeip; + break; + case AHB_YELLOW_I: + return yellowip; break; default: return 0; @@ -685,4 +917,3 @@ void AuctionHouseBotInit(); void AuctionHouseBotLoadValues(AHBConfig*); void AuctionHouseBotCommands(uint32, uint32, uint32, char*); #endif - |
