• 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 --->
Resource icon

Macro - AutoMoney2NPC (1 Viewer) 1.0

Hey Artien

At first glance, for a couple seconds - this sounds like a crazy idea.
We are not, Robin Hood! We have gone and got our hands on the coin, why would wish to give it away to NPCs!?! :xd:

Then as you rightly point out, the faction grind, of repeating turning in hundreds of offerings.

There are three that come to mind, probably many more out there.

Fabian's Strings - Freeport.
- stand in the bar, and give Fabian 2gp a time for a nudge of faction. Helps with Bards, Knights of Truth and Guards of Qeynos.

Rathmana's Traveling Offer - South Ro
- NW corner, give Rathmana Allin 30gp, and lift up the Temple of Solusek Ro faction a bit. Although a twist to come.

Lashun Novashine - North Qeynos
- I've seen him outside the gates to Qeynos, give 2gp for the faction gains with Priests and Guards of Qeynos and also Bards. Also a twist.


Those three I can remember doing, and the pains of click click, mouse flicks the curose and more clicks. Just thinking about it, gives me shivers as also remember when tradeskills was click click click. But I digress.

Recognize for a moment please, I'm at the bottom of the learning curve, and so going to ask question from the newbie perspective.
I'm taking it this script is going to pluck a desired amount of coin from your inventory, and give it to the desired npc. It will do this so many times saving the operator from a case of RSI. Great.

The thoughts that come to mind, and put out there for discussion are:

First scenario, what will happen if as part of the giving cycle, the npc gives you something in return? As happens with Rathmana's event. He gives a scroll, which could be a spell item. Would that get placed in inventory, or drop / destroyed, so the script can continue giving coins?

Second scenario, what will happen if the npc likes to wander, and not remain at the same spot. He can be paused in his travels by hails but will set off again soon after. This happens with the Lashun event. Will the character follow the npc, like a puppy dog and continue to feed gold, or would it stop and wait until hopefully the npc paths within trading range again?


I really do like this idea of the coins. Wonder if it can also be applied to such as bone chips?

Best Wishes and Regards.
 
Hey,

Good points all. I'll update the script a bit with your feedback.

1. I will, before every "give" action, do a check to see if the npc is in range. It only checks at the start now. Following the npc around automatically would require mq2nav to be loaded, though not hard to do. I can do that, no problem.

2. Item on return, I have no idea about. My guts tell me it gets dropped into the inventory since it hangs on the cursor and you replace it with the money. I will check, including what if inventory is full ;)

3. Items giving, sure can be done, but this script is just for money.
 
Cant you just give an npc a bunch of coin in the right multiplier for faction hits or is it different then turning in stacks of items ?
 
Hello EvilBarny

That would be real world logic, and this is EQ!
In saying that, EQ has evolved over the years, perhaps it's something they change.


If we need to raise faction, by 500 points.
If we know that get 1 point, for each 2gp turn in.
Then we require 1000gp to achieve that goal, and turning it over to the npc will give us the 500 point faction.


Real world... solve the problem we give over 1000 and it's done.
Traditional EQ is.. we must give 500 iterations of 2gp, and receive those 'micro thank yous' of faction ups.
Even though logic says that give 1 iteration of 1000gp, 2 iterations of 500gp, 4 iterations of 250gp.. (and so on) has the same net effect.
EQ looks to have 500 iterations of 2gp.

This is why what Artien has looked to create is a great mindnumbing repetitive energy saver.
 
Cant you just give an npc a bunch of coin in the right multiplier for faction hits or is it different then turning in stacks of items ?

yes, also this script should also work on EMU's that doesnt have this QoL change; I just havent tested it.
 
Last edited:
I've tried using this and it won't take gold and give to Lashun. It will take silver from my inventory if I specify a silver amount, but will not give to the NPC.
 
Artien submitted a new resource:

AutoMoney2NPC - Give certain amount of money to an NPC, a certain amount of times



Read more about this resource...

So this does not seem to work with selecting the money amount, I set it to 2 gold. but it keeps selecting 0. And then no turn in since nothing on cursor. I think the slider is the problem. when the money box comes up, it never does the slide. If I am quick, when it sets it to 0, I am able to manually type 2. and it will then pick up 2 gold, and continue and do the rest. So it all seems to be working but the selection slider amount. I thought maybe it was my custom interface, and even reset to default same issue. Any suggestions? I am fine timing it and typeing he amount, but this is a great macro, would like to see it working. (P.S. maybe it is working and it is me doing something wrong)
 
So this does not seem to work with selecting the money amount, I set it to 2 gold. but it keeps selecting 0. And then no turn in since nothing on cursor. I think the slider is the problem. when the money box comes up, it never does the slide. If I am quick, when it sets it to 0, I am able to manually type 2. and it will then pick up 2 gold, and continue and do the rest. So it all seems to be working but the selection slider amount. I thought maybe it was my custom interface, and even reset to default same issue. Any suggestions? I am fine timing it and typeing he amount, but this is a great macro, would like to see it working. (P.S. maybe it is working and it is me doing something wrong)
I was able to fix it to give 2 gold by changing
INI:
/notify QuantityWnd QTYW_Slider newvalue ${cashflow}
to be
INI:
/notify QuantityWnd QTYW_Slider newvalue 2
 
I was able to fix it to give 2 gold by changing
INI:
/notify QuantityWnd QTYW_Slider newvalue ${cashflow}
to be
INI:
/notify QuantityWnd QTYW_Slider newvalue 2
Awesome! I will give this a try. It was still better than having to all that clicking manually. Thank you for the update, I really appreciate it.
 
Lines 45 50 and 60 should end in curly braces, not parentheses
1600679280095.png

INI:
 |platinum
    /if (${TradePlat} > 0) {
        /call Gimme "IW_Money0" ${TradePlat}
    }
    
    |gold
    /if (${TradeGold} > 0) {
        /call Gimme "IW_Money1" ${TradeGold}
    }
    
    |silver
    /if (${TradeSilver} > 0) {
        /call Gimme "IW_Money2" ${TradeSilver}
    }   
    
    |bronze
    /if (${TradeBronze} > 0) {
        /call Gimme "IW_Money3" ${TradeBronze}
    }
 
This works for Rathmana with 30 gold. so start tne macro with empty target box/ when inventory box pops up target Rathmana. Then you also have to push 'GIVE" every time.:


|Trade certain amount of money to a certain amount of times to a certain NPC

Sub Main

|---------------------------------------

/declare NPCName string local rathmin allin

|Set amount you want to trade PER TIME
/declare TradePlat int outer 0
/declare TradeGold int outer 1
/declare TradeSilver int outer 2
/declare TradeBronze int outer 3


/declare HowOften int local 40

|---------------------------------------

/declare i int local

/target npc ${NPCName}
/delay 3s
/if ( ${Target.CleanName.NotEqual[${NPCName}]} ) {
/echo I cannot target ${NPCName}, quitting
/return
}

/for i 1 to ${HowOften}
/echo Trade ${i} of ${HowOften}
/call Trade
/delay 2s
/next i

/return

Sub Trade()
/declare mmuch int local 0

/invoke ${Window[InventoryWindow].DoOpen}
/delay 2s

|platinum
/if (${TradePlat} > 0) {
/call Gimme "IW_Money1" ${TradePlat}
}

|gold
/if (${TradeGold} > 30) {
/call Gimme "IW_Money1" ${TradeGold}
}

|silver
/if (${TradeSilver} > 0) {
/call Gimme "IW_Money1" ${TradeSilver}
}

|bronze
/if (${TradeBronze} > 0) {
/call Gimme "IW_Money1" ${TradeBronze}
}

|Accept the "give"
/notify GiveWnd GVW_Give_Button leftmouseup
/delay 1s
/return

Sub Gimme(string moneyz, int cashflow)
/echo open inventory
/notify InventoryWindow ${moneyz} leftmouseup
/delay 1s
/notify QuantityWnd QTYW_Slider newvalue 30
/delay 1s
/notify QuantityWnd QTYW_Accept_Button leftmouseup
/delay 1s
/click left target
/delay 2s
/return
 
Ok, I have been trying to get this faction raising macro to work and so far it targets the NPC (Rathmana Allin),
It tries to get 3pp in the money select window. (then immediately goes to zero in the amount of money window).
OR
It will try and give 30gp. Also when it does give to the NPC...it will not click the give button. Here is the ini for this macro that I have as of right now.

quote
|Trade certain amount of money to a certain amount of times to a certain NPC

Sub Main

|---------------------------------------

/declare NPCName string local Rathmana Allin

|Set amount you want to trade PER TIME
/declare TradePlat int outer 0
/declare TradeGold int outer 1
/declare TradeSilver int outer 2
/declare TradeBronze int outer 3


/declare HowOften int local 40

|---------------------------------------

/declare i int local

/target npc ${NPCName}
/delay 3s
/if ( ${Target.CleanName.NotEqual[${NPCName}]} ) {
/echo I cannot target ${NPCName}, quitting
/return
}

/for i 1 to ${HowOften}
/echo Trade ${i} of ${HowOften}
/call Trade
/delay 2s
/next i

/return

Sub Trade()
/declare mmuch int local 0

/invoke ${Window[InventoryWindow].DoOpen}
/delay 2s

|platinum
/if (${TradePlat} > 3) {
/call Gimme "IW_Money1" ${TradePlat}
}

|gold
/if (${TradeGold} > 0) {
/call Gimme "IW_Money1" ${TradeGold}
}

|silver
/if (${TradeSilver} > 0) {
/call Gimme "IW_Money1" ${TradeSilver}
}

|bronze
/if (${TradeBronze} > 0) {
/call Gimme "IW_Money1" ${TradeBronze}
}

|Accept the "give"
/notify GiveWnd GVW_Give_Button leftmouseup
/delay 1s
/return

Sub Gimme(string moneyz, int cashflow)
/echo open inventory
/notify InventoryWindow ${moneyz} leftmouseup
/delay 1s
/notify QuantityWnd QTYW_Slider newvalue 3
/delay 1s
/notify QuantityWnd QTYW_Accept_Button leftmouseup
/delay 1s
/click left target
/delay 2s
/return

Unquote
Any suggestions?
I wish I had paid more attention to doing computer programming.
 
Ok there is a problem with the "Give" button after the mac opens inventory, selects the correct NPC, then selects the correct amount of pp to give (3pp), opens the "give" window, but then tries to put in 3 more pp (X3). Does not give the npc the 3pp the firsdt as is required to raise Temple of Sol Ro faction.

Below is, what I believe, the action to give the NPC the correct money.
and below that is the entire macro I am using:

quote
|Accept the "give"
/notify GiveWnd GVW_Give_Button leftmouseup
/delay 1s
/return
unquote

Quote
|Trade certain amount of money to a certain amount of times to a certain NPC

Sub Main

|---------------------------------------

/declare NPCName string local Rathmana Allin

|Set amount you want to trade PER TIME
/declare TradePlat int outer 0
/declare TradeGold int outer 1
/declare TradeSilver int outer 2
/declare TradeBronze int outer 3


/declare HowOften int local 1

|---------------------------------------

/declare i int local

/target npc ${NPCName}
/delay 3s
/if ( ${Target.CleanName.NotEqual[${NPCName}]} ) {
/echo I cannot target ${NPCName}, quitting
/return
}

/for i 1 to ${HowOften}
/echo Trade ${i} of ${HowOften}
/call Trade
/delay 2s
/next i

/return

Sub Trade()
/declare mmuch int local 0

/invoke ${Window[InventoryWindow].DoOpen}
/delay 2s

|platinum
/if (${TradePlat} > 0) {
/call Gimme "IW_Money1" ${TradePlat}
}

|gold
/if (${TradeGold} > 0) {
/call Gimme "IW_Money0" ${TradeGold}
}

|silver
/if (${TradeSilver} > 0) {
/call Gimme "IW_Money0" ${TradeSilver}
}

|bronze
/if (${TradeBronze} > 0) {
/call Gimme "IW_Money0" ${TradeBronze}
}

|Accept the "give"
/notify GiveWnd GVW_Give_Button leftmouseup
/delay 1s
/return

Sub Gimme(string moneyz, int cashflow)
/echo open inventory
/notify InventoryWindow ${moneyz} leftmouseup
/delay 1s
/notify QuantityWnd QTYW_Slider newvalue 3
/delay 1s
/notify QuantityWnd QTYW_Accept_Button leftmouseup
/delay 1s
/click left target
/delay 2s
/return


unquote
 
ok folks I did it. I got it to give 3pp to Rathmana Allin. For the Temple of Sol Ro faction. With this macro, (for Rathmana Allin) is change the number of times to do the transaction. as described below.
/declare HowOften int local 1

Here is the ini.

||Trade certain amount of money to a certain amount of times to a certain NPC
Sub Main
|---------------------------------------
/declare NPCName string local Rathmana Allin
|Set amount you want to trade PER TIME
/declare TradePlat int outer 1
/declare TradeGold int outer 0
/declare TradeSilver int outer 0
/declare TradeBronze int outer 0
/declare HowOften int local 2
|---------------------------------------
/declare i int local
/target npc ${NPCName}
/delay 3s
/if ( ${Target.CleanName.NotEqual[${NPCName}]} ) {
/echo I cannot target ${NPCName}, quitting
/return
}
/for i 1 to ${HowOften}
/echo Trade ${i} of ${HowOften}
/call Trade
/delay 2s
/next i
/return
Sub Trade()
/declare mmuch int local 0
/invoke ${Window[InventoryWindow].DoOpen}
/delay 2s
|platinum
/if (${TradePlat} > 0) {
/call Gimme "IW_Money0" ${TradePlat)
}
|gold
/if (${TradeGold} > 0) {
/call Gimme "IW_Money0" ${TradeGold)
}
|silver
/if (${TradeSilver} > 0) {
/call Gimme "IW_Money0" ${TradeSilver}
}
|bronze
/if (${TradeBronze} > 0) {
/call Gimme "IW_Money0" ${TradeBronze)
}
|Accept the "give"
/notify GiveWnd GVW_Give_Button leftmouseup
/delay 1s
/return
Sub Gimme(string moneyz, int cashflow)
/echo open inventory
/notify InventoryWindow ${moneyz} leftmouseup
/delay 1s
/notify QuantityWnd QTYW_Slider newvalue 3
/delay 1s
/notify QuantityWnd QTYW_Accept_Button leftmouseup
/delay 1s
/click left target
/delay 2s
/return



Hope this helps out you folks
 
For those of you looking for a copy and paste fixed/working solution with example.
This is to give 5 gold per turn-in, 600 times.. to Guard Shilster for the blackburrow stout quest for repairing corrupt/evil qeynos factions.
(I had an incident where I killed a named that dropped my character's faction to KoS, at their origin point)

In the case where the npc moves, using /afollow on the npc works quite well

INI:
||Trade certain amount of money to a certain amount of times to a certain NPC

Sub Main

    |---------------------------------------
    
    /declare NPCName        string     local Guard Shilster

    |Set amount you want to trade PER TIME
    /declare TradePlat        int        outer 0
    /declare TradeGold        int        outer 5
    /declare TradeSilver    int        outer 0
    /declare TradeBronze    int        outer 0
    
    
    /declare HowOften         int     local 600
    
    |---------------------------------------

    /declare i                 int     local
    
    /target npc ${NPCName}
    /delay 3s
    /if ( ${Target.CleanName.NotEqual[${NPCName}]} ) {
        /echo I cannot target ${NPCName}, quitting
        /return
    }

    /for i 1 to ${HowOften}
        /echo Trade ${i} of ${HowOften}
        /call Trade
        /delay 2s
        /next i
    
/return

Sub Trade()
    /declare mmuch int local 0
    
    /invoke ${Window[InventoryWindow].DoOpen}
    /delay 2s
    
    |platinum
    /if (${TradePlat} > 0) {
        /call Gimme "IW_Money0" ${TradePlat}
    }
    
    |gold
    /if (${TradeGold} > 0) {
        /call Gimme "IW_Money1" ${TradeGold}
    }
    
    |silver
    /if (${TradeSilver} > 0) {
        /call Gimme "IW_Money2" ${TradeSilver}
    }   
    
    |bronze
    /if (${TradeBronze} > 0) {
        /call Gimme "IW_Money3" ${TradeBronze}
    }   

    |Accept the "give"
    /notify GiveWnd GVW_Give_Button leftmouseup
    /delay 1s
    /return

Sub Gimme(string moneyz, int cashflow)
        /echo open inventory
        /notify InventoryWindow ${moneyz} leftmouseup
        /delay 1s
        /notify QuantityWnd QTYW_Slider newvalue ${cashflow}   
        /delay 1s
        /notify QuantityWnd QTYW_Accept_Button leftmouseup
        /delay 1s
        /click left target
        /delay 2s
    /return
 
Just used this to farm up faction for the Pally epic 1 by giving 2gp to Lashun Novashine in North Qeynos and it's a very nice little macro awesome work on this
 
Macro - AutoMoney2NPC

Users who are viewing this thread

Back
Top