• Hail, we're RedGuides. We want you to play six (yes, 6!) EverQuest characters at once. We have scripts and a friendly community to help, please join our playstyle and say hello! 👋
  • We've added LLM sections to our Terms & Rules and Resource Rules, for everyone's sanity & in-game safety.
    Read more
    a. Do not replace your voice with an LLM. This goes for your posts and your scripts. Drafting and editing with a tool is fine, but don't take you out of what you share.
    b. Do not replace your EQ character's voice with an LLM. We don't want scripts that speak over /ooc, /shout or other public channels. This has been an unwritten rule that's kept casino scripts off the site for decades, but we're now compelled to make it clear: keep automated communication private.

    Why Does RG Review Scripts?
    Nearly every LLM-written Lua script we see is making your character do impossible things, and rarely in a way that's beneficial to you. We've seen heavy server hammering, /target over impossible distances when /nav spawn would passively accomplish the same thing, a spawn search that fires 20+ times per second, and other pointless actions that are likely annoying GMs.

    You are welcome to use LLMs as a tool to structure, draft, and edit your work, but please read critically before hitting /lua run
Buy.inc

Release Buy.inc 2020-26-NOV

Download
Is it just me or is the :filling routine not working too good.. when I run this it can't find the item because the merchant window list hasn't populated yet..

could be me tho.. I am use /delay 25 before running it..
 
Is it just me or is the :filling routine not working too good.. when I run this it can't find the item because the merchant window list hasn't populated yet..

could be me tho.. I am use /delay 25 before running it..

I use /delay 10s ${Merchant.ItemsReceived}
 
Code:
Sub BuyItem(string ItemToBuy, int amount)
    /if (${FindItemCount[${ItemToBuy}]}>= ${amount}) /return
    /declare i int local
    /declare QTY int local
    /varcalc QTY ${amount}-${FindItemCount[${ItemToBuy}]}
    /declare ListItem int local ${Window[MerchantWnd].Child[ItemList].List[=${ItemToBuy},2]}
    /declare count int local ${FindItemCount[${ItemToBuy}]}

    /if (!${ListItem}) {
        /echo couldn't find ${ItemToBuy}
        /return
    } else {
        /notify MerchantWnd ItemList listselect ${ListItem}
        /delay 5
    }
    /echo Buying ${ItemToBuy} Till I get ${amount}

    /while (${QTY}>0) {
        /varset count ${FindItemCount[${ItemToBuy}]}
        /if (${QTY}>999) {
            /buyitem 1000
            /delay 3 ${FindItemCount[${ItemToBuy}]} > ${count}
            /varcalc QTY ${amount}-${FindItemCount[${ItemToBuy}]}
        } else /if (${QTY}>0 && ${QTY}<1000) {
            /buyitem ${QTY}
            /delay 5 ${FindItemCount[${ItemToBuy}]} > ${count}
            /varcalc QTY ${amount}-${FindItemCount[${ItemToBuy}]}
        }
        /if (${FindItemCount[${ItemToBuy}]}>${count}) /echo \ar${FindItemCount[${ItemToBuy}]}\aw/\ar${amount}\awx\ap${ItemToBuy} \at${Math.Calc[${FindItemCount[${ItemToBuy}]}/${amount}*100]}\aw% Done.
    }
    /while (${Window[MerchantWnd].Open}) {
        /cleanup
        /delay 5
    }
/return

I use this one. It has a progress tracker, so depending on how many items you want to purchase you can use it or not. It's a bit smaller than what you're using currently. Can buy items that stack up to 1000 at a time.

For this one, it doesn't buy the number of items you pass it, it actually buys items until you actually have that many of the item. So if your intention was to buy XXX more of the items, then you'd need to modify this still.

Example: I have 500 Amber. I use this BuyItem and tell it ${amount} is 1000, then it will purchase 500 more, not 1000.

This doesn't open the merchant or wait for the merchant to populate. It's assumed that it happens prior to you calling the function.
 
Last edited:
Release Buy.inc

Users who are viewing this thread

Back
Top
Cart