• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Question - Need help editing a modified turn in macro

Joined
Apr 8, 2015
RedCents
1,279¢
Hello all, seeking some help creating a macro that will turn a quest piece into a mob, invis with a CoS, then hit the trade button.

I need to do this to turn in an item into a rare quest mob. I need to be invis before hitting the trade window due to faction issues.

I found a similar macro written by someone else and was wondering how I could go about modifying it. I would obviously change the name of the mob to fit what I need.


Rich (BB code):
Sub main
:mainLoop
/if (${Spawn[npc Zordak Ragefire].ID}) {
/if (${Target.ID}) /squelch /target clear
/delay 2s !${Target.ID}
/squelch /target npc Zordak Ragefire
/delay 2s ${Target.Name.Find[Zordak]}
/if (${Target.Name.Find[Zordak]}) {
/echo Zordak found attempting to give him the Shimmering Pearl
/if (${Cursor.ID}) /autoinventory
/delay 2s !${Cursor.ID}
/itemnotify ${FindItem[Shimmering Pearl].InvSlot} leftmouseup
/delay 2s ${Cursor.ID}
/ubertrade
/delay 2s ${Window[GiveWnd].Open}
/if (${Window[GiveWnd].Open}) {
/notify GiveWnd GVW_Give_Button leftmouseup
/endm
}
}
}
/goto :mainLoop
/return

I'm thinking after this line
Rich (BB code):
/if (${Window[GiveWnd].Open}) {
I can put something along the lines of
Rich (BB code):
/keypress 5
which would be the hotkey bound to my circlet of shadows

Any tips/advice would be great! Thanks!
 
I think it would work just fine, however I personally have been working on a macro and there's a step to turn in, and I can't get /itemnotify to work properly. Awaiting maskoi's reponse.
 
I don't think ubertrade works anymore. Not sure how I will handle giving the item to the mob to open trade window in the macro.

- - - Updated - - -

instead of uber trade I used /click left target
 
You need to be standing next to where the guy spawns and this should work.

Rich (BB code):
Sub main
    :mainLoop
        /if (${Spawn[npc Zordak Ragefire].ID}) {
            /if (${Target.ID}) /squelch /target clear
            /delay 2s !${Target.ID}
            /squelch /target npc Zordak Ragefire
            /delay 2s ${Target.Name.Find[Zordak]}
            /if (${Target.Name.Find[Zordak]}) {
                /echo Zordak found attempting to give him the Shimmering Pearl
                /if (${Cursor.ID}) /autoinventory
                /delay 2s !${Cursor.ID}
                /shift /itemnotify in Pack${Math.Calc[${FindItem[Shimmering Pearl].ItemSlot}-22]} ${Math.Calc[${FindItem[=${ItemToHandIn}].ItemSlot2}+1]} leftmouseup
                /delay 2s ${Cursor.ID}
                /face
                /delay 2s
                /useitem "Circlet of Shadows"
                /delay 2s
                /if (${Me.Invis}) /nomodkey /click left target
                /delay 2s ${Window[GiveWnd].Open}
                /if (${Window[GiveWnd].Open}) {
                    /notify GiveWnd GVW_Give_Button leftmouseup
                    /endm
                }
            }
        }
        /delay 10s
    /goto :mainLoop
/return
 
Ok man will sub out and test on another target and report back. I appreciate your help. I learned some doing this

- - - Updated - - -

I changed some things around the way you wrote it.

Basically I need to hand item in. **THEN** click invis and then hit trade.
 
Yes, I did swap around the order and it ended up looking like this. Not much time to test it but will let it runs its course today. Thanks for the help and when I get home from work will throw you a donation. I appreciate the help.

What do ya think? I was thinking of speeding it up a bit. Maybe instead of 10s making it 1s. Would that cause any issues?

Rich (BB code):
Sub main
    :mainLoop
        /if (${Spawn[npc xxxmob].ID}) {
            /if (${Target.ID}) /squelch /target clear
            /delay 2s !${Target.ID}
            /squelch /target npc xxx mob
            /delay 2s ${Target.Name.Find[xxx]}
            /if (${Target.Name.Find[xxxl]}) {
                /echo xxxfound attempting to give him the xxx
                /if (${Cursor.ID}) /autoinventory
                /delay 2s !${Cursor.ID}
                /shift /itemnotify in Pack${Math.Calc[${FindItem[xxx].ItemSlot}-22]} ${Math.Calc[${FindItem[=${ItemToHandIn}].ItemSlot2}+1]} leftmouseup
                /delay 2s ${Cursor.ID}
                /click left target
                /delay 1s
                /useitem "Circlet of Shadows"
                /delay 2s ${Window[GiveWnd].Open}
                /if (${Window[GiveWnd].Open}) {
                    /notify GiveWnd GVW_Give_Button leftmouseup
                    /endm
                }
            }
        }
        /delay 10s
    /goto :mainLoop
/return
 
No don't take out the 10s.
You don't want it looping at light speed while waiting for the mob to spawn which is what that prevents.
Lowest I would go is 5s which would check 20 times a minute if the mob is up.
 
The item needs to be in both parts of the FindItem too. My bad.
I made the npc and give item variables for ease of use. Also added a delay for invis.

Rich (BB code):
Sub main

/declare NPCName string outer MobName
/declare GiveItem string outer ItemGiveName

    :mainLoop
        /if (${Spawn[npc ${NPCName}].ID}) {
            /if (${Target.ID}) /squelch /target clear
            /delay 2s !${Target.ID}
            /squelch /target id ${Spawn[npc ${NPCName}].ID}
            /delay 2s ${Target.Name.Find[${NPCName}]}
            /if (${Target.Name.Find[${NPCName}]}) {
                /echo ${NPCName} found attempting to give him the ${GiveItem}
                /if (${Cursor.ID}) /autoinventory
                /delay 2s !${Cursor.ID}
                /shift /itemnotify in Pack${Math.Calc[${FindItem[${GiveItem}].ItemSlot}-22]} ${Math.Calc[${FindItem[=${GiveItem}].ItemSlot2}+1]} leftmouseup
                /delay 2s ${Cursor.ID}
                /click left target
                /delay 2s ${Window[GiveWnd].Open}
                /useitem "Circlet of Shadows"
                /delay 5s ${Me.Invis}
                /if (${Window[GiveWnd].Open}) {
                    /notify GiveWnd GVW_Give_Button leftmouseup
                    /endm
                }
            }
        }
        /delay 10s
    /goto :mainLoop
/return
 
with the declare statements at the top i can define those variables just once on the first few lines and be good? or replace them all within the macro with what is required?

Thanks you

edit: meh i looked into it, and no i am not right. I changed everything that was finditem to the items name. I also changed every NPCName to the targets name. It has two words so I assume for NPCName I can put i.e John Smith
 
Just change MobName and ItemGiveName and you should be good to go. i would test first though since i whipped this up at work during lunch.
 
Awesome. Learning a lot. If I bump up the speed to 1s as I talked about earlier will it cause the macro to not work? I need to be fast. I have it at 5s currently
 
maybe and maybe not. The game can only react so fast. MQ2 can lock up on stuff if you don't give it time to do stuff.
 
Question - Need help editing a modified turn in macro

Users who are viewing this thread

Back
Top
Cart