• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

autoset baz prices? (1 Viewer)

3djoker

Member
Joined
Jul 8, 2006
RedCents
10¢
nm.... old one works fine.

/plugin mq2bzsrch <--------- works wonders

in case anyone else is looking for it..........

Rich (BB code):
|update.mac 
|Auto-Update Bazaar Prices 
| 
|Original by Sparr 
| 
|Updated by M.D. - 2/2/06 
| 
|Updates the prices of your trader items to compete with other prices found via /bazaar 
|Must have a price set for the items you wish to update otherwise they will be skipped 

Sub Main 
/declare slot int local 
/declare dupecheck int local 
/declare itemname string local 
/declare result int local 
/declare stddev int local 
/declare itemsfound int local 
/declare pricetotal int local 
/declare avgprice int local 
/declare minprice int local 
/declare avgdev int local 
/declare devhigh int local 
/declare quartprice int local 
/declare maxprice int local 
/declare price int local 
/declare fairprice int local 
/declare targetprice int local 
/declare newtargetprice int local 
/declare PlatVal int local 
/declare targetstr string local 

/echo Starting Auto-update... 

:OpenTraderAgain 
/echo Opening Trade Window 
/trader 
/delay 1s ${Window[BazaarWnd].Open} 
/if (!${Window[BazaarWnd].Open}) /goto :OpenTraderAgain 

:OpenBazaarAgain 
/bazaar 
/echo Opening Bazaar Window 
/delay 2s ${Window[BazaarSearchWnd].Open} 
/if (!${Window[BazaarSearchWnd].Open}) /goto :OpenBazaarAgain 

/notify BazaarSearchWnd BZR_UpdatePlayerButton leftmouseup 
/echo Updating Current Traders... 
/delay 2s 

/varset slot -1 
:nextslot 
/echo Selecting Slot ${slot} 
/varcalc slot ${slot}+1 
/if (${slot}>79) /goto :donewithslots 
/notify BazaarWnd BZR_BazaarSlot${slot} leftmouseup 
/if (!${Window[BazaarWnd].Child[BZW_SetPrice_Button].Enabled}) /goto :nextslot 
/if (!${Window[BazaarWnd].Child[BZW_Clear_Button].Enabled}) /goto :nextslot 
/varset itemname ${Window[BazaarWnd].Child[BZR_BazaarSlot${slot}].Tooltip} 
/delay 1s 
/echo Found ${itemname} in Slot ${slot} 
} 

:SearchBazaarAgain 
/bzsrch race any class any stat any slot any type any price 0 9999999 ${itemname} 
/delay 5s ${Bazaar.Done} 
/if (!${Bazaar.Done}) /goto :SearchBazaarAgain 
/if (!${Bazaar.Count}) /goto :nextslot 

/varset itemsfound 0 
/varset pricetotal 0 
/varset minprice 9999999 
/varset maxprice 0 
/for result 1 to ${Bazaar.Count} 
/if (${Bazaar.Item[${result}].Name.Equal[${itemname}]}&&!${Me.Name.Equal[${Bazaar.Item[${result}].Trader.Name}]}) { 
/varcalc itemsfound ${itemsfound}+${Bazaar.Item[${result}].Quantity} 
/varcalc pricetotal ${pricetotal}+${Bazaar.Item[${result}].Price}*${Bazaar.Item[${result}].Quantity} 
/if (${Bazaar.Item[${result}].Price}<${minprice}) /varset minprice ${Bazaar.Item[${result}].Price} 
/if (${Bazaar.Item[${result}].Price}>${maxprice}) /varset maxprice ${Bazaar.Item[${result}].Price} 
} 
/next result 
/if (!${itemsfound}) /goto :nextslot 
/varset avgprice ${Math.Calc[${pricetotal}/${itemsfound}/1000].Int} 
/varset minprice ${Math.Calc[${minprice}/1000].Int} 
/varset maxprice ${Math.Calc[${maxprice}/1000].Int} 
/varset stddev 0 
/varset avgdev 0 
/for result 1 to ${Bazaar.Count} 
/if (${Bazaar.Item[${result}].Name.Equal[${itemname}]}&&!${Me.Name.Equal[${Bazaar.Item[${result}].Trader.Name}]}) { 
/varcalc stddev ${stddev}+((${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}-${avgprice})^2)*${Bazaar.Item[${result}].Quantity} 
/varcalc avgdev ${avgdev}+${Math.Abs[${Bazaar.Item[${result}].Price}-${avgprice}*1000]}*${Bazaar.Item[${result}].Quantity} 
} 
/next result 
/varset stddev ${Math.Calc[(${stddev}/${itemsfound})^.5]} 
/varset avgdev ${Math.Calc[${avgdev}/${itemsfound}/1000].Int} 

/varcalc quartprice (${avgprice}+${minprice})/2 
/varset fairprice 9999999 
/for result 1 to ${Bazaar.Count} 
/if (${Bazaar.Item[${result}].Name.Equal[${itemname}]}&&!${Me.Name.Equal[${Bazaar.Item[${result}].Trader.Name}]}) { 
/if (${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}>=${quartprice}&&${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}<${fairprice}) /varset fairprice ${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int} 
} 
/next result 

/if (${itemsfound}<15) { 
/varset targetprice ${Math.Calc[${avgprice}-${stddev}]} 
/varset targetprice ${If[${targetprice}<${minprice},${minprice},${targetprice}]} 
} else { 
/varset targetprice ${fairprice} 
} 
/varcalc targetprice ${targetprice}-1 

/if (${targetprice}<${Math.Calc[${SelectedItem.Value}/1050]}) { 
/echo Underpriced Goods! ${itemname} for ${minprice}pp value:${Math.Calc[${SelectedItem.Value}/1050]} etc:(${avgprice},${targetprice},${stddev},${itemsfound}) 
/varset targetprice ${Math.Calc[${SelectedItem.Value}/1000].Int} 
} 

/varset newtargetprice 9999999 
/for result 1 to ${Bazaar.Count} 
/if (${Bazaar.Item[${result}].Name.Equal[${itemname}]}&&!${Me.Name.Equal[${Bazaar.Item[${result}].Trader.Name}]}) { 
/if (${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}>${targetprice}&&${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}<${newtargetprice}) /varset newtargetprice ${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int} 
} 
/next result 
/if (${newtargetprice}>1000) { 
/varcalc targetprice ${newtargetprice}-50 
} else { 
/varcalc targetprice ${newtargetprice}-5 
} 
/if (${targetprice}<=0) /varset targetprice 1 

/varset targetstr ${targetprice} 

/if (${targetprice}<${Window[BazaarWnd].Child[BZW_Money0].Text}) { 
/echo Repricing ${itemname} from ${Window[BazaarWnd].Child[BZW_Money0].Text} to ${targetprice} 
:openqtywndagain 
/notify BazaarWnd BZW_Money0 leftmouseup 
/delay 2s 
/if (!${Window[QuantityWnd].Open}) /goto :openqtywndagain 
/delay 1 
/keypress backspace chat 
/keypress backspace chat 
/keypress backspace chat 
/keypress backspace chat 
/keypress backspace chat 
/keypress backspace chat 
/keypress backspace chat 
/keypress backspace chat 
/delay 1 
/for PlatVal 1 to 7 
/squelch /keypress ${targetstr.Mid[${PlatVal},1]} chat 
/next PlatVal 
/notify QuantityWnd QTYW_Accept_Button leftmouseup 
/delay 1 
/notify BazaarWnd BZW_SetPrice_Button leftmouseup 
/delay 1 
} 
/goto :nextslot 
:donewithslots 
/end 
/return
 
Worst thing you can do with this program is set it on loop or run it too often (running it once an hour is too much imho)
If someone pays attention to bazaar, you can tell pretty easily who is using this type of macro.
 
Great mac just what I was looking for thanks. How would I change this macro to adjust the prices up? Say example the price for item abc is 1000pp and I have mine set at 50pp how can I change this to autochange my price to 999? :D :drink
 
Last edited:
How to reprice items that are set to 0 as per the recent "fix" to the bazaar ?

Maybe a macro to reprice everything to 999999 and then run this update.mac ?
 
What I ended up doing was starting the trader up, letting it write to the file, taking the trader back down, opening the file manually and changing all of the 0 prices to 100000 or some other ridiculously high number, then running the program against those prices. This seemed to work very well for me.
 
Here's a version that will:

a) move prices up or down
b) reprice items with 0 initial price
c) not reprice items over 20000

Rich (BB code):
|xupdate_prices.mac 
|Auto-Update Bazaar Prices 
| 
|Original by Sparr 
| 
|Updated by M.D. - 2/2/06 
|Uptated by Druid - 4/16/06
| 
|Updates the prices of your trader items to compete with other prices found via /bazaar 
|
|-------------------------------------------------------------------
|requires MQ2bzsrch
|Will reprice items with 0 initial price
|Will move prices up or down --- check your prices manually -- YMMV
|new stuff- items > 20000 NOT PRICED... do these manually
|-------------------------------------------------------------------

Sub Main 
/declare slot int local 
/declare dupecheck int local 
/declare itemname string local 
/declare result int local 
/declare stddev int local 
/declare itemsfound int local 
/declare pricetotal int local 
/declare avgprice int local 
/declare minprice int local 
/declare avgdev int local 
/declare devhigh int local 
/declare quartprice int local 
/declare maxprice int local 
/declare price int local 
/declare fairprice int local 
/declare targetprice int local 
/declare newtargetprice int local 
/declare PlatVal int local 
/declare targetstr string local 

/echo Starting Auto-update... 

:OpenTraderAgain 
/echo Opening Trade Window 
/trader 
/delay 1s ${Window[BazaarWnd].Open} 
/if (!${Window[BazaarWnd].Open}) /goto :OpenTraderAgain 

:OpenBazaarAgain 
/bazaar 
/echo Opening Bazaar Window 
/delay 2s ${Window[BazaarSearchWnd].Open} 
/if (!${Window[BazaarSearchWnd].Open}) /goto :OpenBazaarAgain 

/notify BazaarSearchWnd BZR_UpdatePlayerButton leftmouseup 
/echo Updating Current Traders... 
/delay 2s 

/varset slot -1 
:nextslot 
/echo Selecting Slot ${slot} 
/varcalc slot ${slot}+1 
/if (${slot}>79) /goto :donewithslots 
/notify BazaarWnd BZR_BazaarSlot${slot} leftmouseup 
/if (!${Window[BazaarWnd].Child[BZW_SetPrice_Button].Enabled}) /goto :nextslot 

|Check to see if item has a price already
|  /if (!${Window[BazaarWnd].Child[BZW_Clear_Button].Enabled}) /goto :nextslot

/varset itemname ${Window[BazaarWnd].Child[BZR_BazaarSlot${slot}].Tooltip} 
/delay 1s 
/echo Found ${itemname} in Slot ${slot} 
} 

:SearchBazaarAgain 
/bzsrch race any class any stat any slot any type any price 0 9999999 ${itemname} 
/delay 5s ${Bazaar.Done} 
/if (!${Bazaar.Done}) /goto :SearchBazaarAgain 
/if (!${Bazaar.Count}) /goto :nextslot 

/varset itemsfound 0 
/varset pricetotal 0 
/varset minprice 9999999 
/varset maxprice 0 
/for result 1 to ${Bazaar.Count} 
 /if (${Bazaar.Item[${result}].Name.Equal[${itemname}]}&&!${Me.Name.Equal[${Bazaar.Item[${result}].Trader.Name}]}) { 
	/varcalc itemsfound ${itemsfound}+${Bazaar.Item[${result}].Quantity} 
	/varcalc pricetotal ${pricetotal}+${Bazaar.Item[${result}].Price}*${Bazaar.Item[${result}].Quantity} 
	/if (${Bazaar.Item[${result}].Price}<${minprice}) /varset minprice ${Bazaar.Item[${result}].Price} 
	/if (${Bazaar.Item[${result}].Price}>${maxprice}) /varset maxprice ${Bazaar.Item[${result}].Price} 
 } 
/next result 

/if (!${itemsfound}) /goto :nextslot 
/varset avgprice ${Math.Calc[${pricetotal}/${itemsfound}/1000].Int} 
/varset minprice ${Math.Calc[${minprice}/1000].Int} 
/varset maxprice ${Math.Calc[${maxprice}/1000].Int} 
/varset stddev 0 
/varset avgdev 0 
/for result 1 to ${Bazaar.Count} 
 /if (${Bazaar.Item[${result}].Name.Equal[${itemname}]}&&!${Me.Name.Equal[${Bazaar.Item[${result}].Trader.Name}]}) { 
	/varcalc stddev ${stddev}+((${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}-${avgprice})^2)*${Bazaar.Item[${result}].Quantity} 
	/varcalc avgdev ${avgdev}+${Math.Abs[${Bazaar.Item[${result}].Price}-${avgprice}*1000]}*${Bazaar.Item[${result}].Quantity} 
 } 
/next result 
/varset stddev ${Math.Calc[(${stddev}/${itemsfound})^.5]} 
/varset avgdev ${Math.Calc[${avgdev}/${itemsfound}/1000].Int} 

/varcalc quartprice (${avgprice}+${minprice})/2 
/varset fairprice 9999999 
/for result 1 to ${Bazaar.Count} 
 /if (${Bazaar.Item[${result}].Name.Equal[${itemname}]}&&!${Me.Name.Equal[${Bazaar.Item[${result}].Trader.Name}]}) { 
	/if (${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}>=${quartprice}&&${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}<${fairprice}) /varset fairprice ${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int} 
 } 
/next result 

/if (${itemsfound}<15) { 
	/varset targetprice ${Math.Calc[${avgprice}-${stddev}]} 
	/varset targetprice ${If[${targetprice}<${minprice},${minprice},${targetprice}]} 
} else { 
	/varset targetprice ${fairprice} 
} 
/varcalc targetprice ${targetprice}-1 

/if (${targetprice}<${Math.Calc[${SelectedItem.Value}/1050]}) { 
	/echo Underpriced Goods! ${itemname} for ${minprice}pp value:${Math.Calc[${SelectedItem.Value}/1050]} etc:(${avgprice},${targetprice},${stddev},${itemsf  ound}) 
	/varset targetprice ${Math.Calc[${SelectedItem.Value}/1000].Int} 
} 

/varset newtargetprice 9999999 
/for result 1 to ${Bazaar.Count} 
 /if (${Bazaar.Item[${result}].Name.Equal[${itemname}]}&&!${Me.Name.Equal[${Bazaar.Item[${result}].Trader.Name}]}) { 
	/if (${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}>${targetprice}&&${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int}<${newtargetprice}) /varset newtargetprice ${Math.Calc[${Bazaar.Item[${result}].Price}/1000].Int} 
 } 
/next result 
/if (${newtargetprice}>1000) { 
	/varcalc targetprice ${newtargetprice}-50 
} else { 
	/varcalc targetprice ${newtargetprice}-5 
} 
/if (${targetprice}<=0) /varset targetprice 1 

/varset targetstr ${targetprice} 

|This Prevents UP pricing
| /if (${targetprice}<${Window[BazaarWnd].Child[BZW_Money0].Text}) { 

|
|Dont price if > 20000
|
/if (${targetprice} < 20001 {
	/echo Repricing ${itemname} from ${Window[BazaarWnd].Child[BZW_Money0].Text} to ${targetprice} 
:openqtywndagain 
	/notify BazaarWnd BZW_Money0 leftmouseup 
	/delay 2s 
	/if (!${Window[QuantityWnd].Open}) /goto :openqtywndagain 
	/delay 1 
	/keypress backspace chat 
	/keypress backspace chat 
	/keypress backspace chat 
	/keypress backspace chat 
	/keypress backspace chat 
	/keypress backspace chat 
	/keypress backspace chat 
	/keypress backspace chat 
	/delay 1 
	/for PlatVal 1 to 7 
	 /squelch /keypress ${targetstr.Mid[${PlatVal},1]} chat 
	/next PlatVal 
	/notify QuantityWnd QTYW_Accept_Button leftmouseup 
	/delay 1 
	/notify BazaarWnd BZW_SetPrice_Button leftmouseup 
	/delay 1 
} 

/goto :nextslot 
:donewithslots 
/end 
/return
 
It's funny to see 2-3 of these guys in the same bazaar selling some of the same stuff. Sadly after they get cleaned out for next to nothing, they wisen up. Still though this manages to squeek through every now and then and is good for a laugh.
 
There's another plugin or macro available here where you can set your own floor or ceiling and prevent selling for too low due to those damn hacker exploiters who found a bug in your automated pricing system.
 
autoset baz prices?

Users who are viewing this thread

Back
Top