EZ Server

General Category => Quest and Guides => Topic started by: Dimur on February 25, 2018, 01:05:04 am



Title: Quality of Life macro commands
Post by: Dimur on February 25, 2018, 01:05:04 am
I know there are a few how-to threads floating around the forums with some useful commands for MQ2, but I'm too lazy to go searching for them and bumping them with things I use, so I am just starting this thread to share some of the things I do with MQ2 to streamline my play experience.  I'll try to add things as I think of them to the thread.

First, mass pulling is a key tenant for progressing and looting all the corpses is an exercise in tedium.  I don't have any fancy loot macros other than my hotkey that targets a corpse and clicks the lootall button in the loot window.  I also put in a command to close the confirmation pop up window when a no loot item shows up on the corpse since I configure EQ to always ask me before looting no drop items.  This is a simple hotkey and has worked well enough so far for me, but as the pulls get larger and the corpses pile up, I tend to get super bored in checking corpse after corpse for gsoa, gss, plat bags or anything else worth keeping.  Most zones don't really present a problem because most have a scripted loot system that keeps most junk off the loot tables. 

But I was zone pulling T9 last week and when the last mob dies, it ends up being somewhere in the neighborhood of 350ish corpses of armor component ridden trash to loot.  It was honestly taking so long to loot the corpses that by the time I finished the mobs started respawning.  Mindlessly clicking loot over and over sucked enough, but never feeling like you're making progress was the biggest pain.  So, at the end of my loot key I added a command to pop up an alert telling me how many mobs I still needed to loot.  I don't know that anyone else finds looting as tedious as I do, but I find it somewhat therapeutic to see how many mobs I have left in the pile to loot so I'm going to post my hotkey code in case anyone else might find it useful.

Line 1: /tar corpse
Line 2: /loot
Line 3: /notify LootWnd LW_LootAllButton leftmouseup
Line 4: /notify ConfirmationDialogBox No_Button leftmouseup
Line 5: /popup ${SpawnCount[radius 70 corpse]} corpses left to loot

Hopefully someone can find this beneficial to their EZ QOL experience.  Feel free to reply to this post with things that you use to make the grind more tolerable.


Title: Re: Quality of Life macro commands
Post by: Dimur on February 25, 2018, 01:30:23 am
The syntax for creating and entering instances is pretty straightforward and easy to use, but since I am lazy I tend to set the enter syntax as an alias command for zones I constantly find myself making instances for as the old instances expire.

Alias is a text trigger command for MQ2, much like EZ has text trigger commands like /say aa, /say stats, etc.  MQ2 has a list of alias commands in the MacroQuest.ini file in your mq2 install folder, along with your active plugins, filters and some other stuff.  When you set an alias command, when mq2 sees the text in a chatbox, it executes the associated command.  The alias syntax is /alias [trigger text] [command to execute].  You can set whatever text you want as the trigger, but the command to execute must be some command that MQ2 will recognize and be able to execute.

So, using the alias command to make my access to instances works by typing the trigger text into chat. I have 3 alias commands for frozenshadow instances, one for solo, one for raid and one for guild.

When I type /frozensolo into my chat window and hit enter, my toon does /say enter solo dimurwar frozenshadow.  If I have a frozenshadow solo instance active, I port in and save the hassle of typing it out longhand.
When I type /frozenraid into my chat window and hit enter, my toon does /say enter raid dimurwar frozenshadow.  If I have a forzenshadow raid instance active, I port in and save the hassle of typing in out longhand.
You can probably figure out what happens when I type /frozenguild.

The alias command can be set from in game, but only the toon executing the command can use it right away. For this reason, general alias commands that you want all toons to have access to are best to set up with a /bcaa command so they all execute it and have access to it without having to relog.

Syntax for setting up an alias command is as follows: /alias [trigger text] [command to execute].  So to set up the /frozensolo command, I would use this format:
/alias /frozensolo /say enter solo dimurwar frozenshadow 
If I want to have all toons set it up at once, I just /bcaa it like:
/bcaa //alias /frozensolo /say enter solo dimurwar frozenshadow

Note that I intentionally use a forward slash in my trigger text.  I do this to avoid accidentally triggering the command when I am just chatting with someone.  You can do it without the slash, but I err on the side of caution.  You can see the /alias is telling mq2 that you are either adding a new /alias command or editing an existing one.  If mq2 sees that there is already an alias for /frozensolo, it updates that alias with the command to execute.  This is handy if you fat-finger it and mistype the command to execute, you don't have to delete anything it just overwrites itself. But once again, this isn't gamebreaking or anything though it does help streamline my playstyle.


Title: Re: Quality of Life macro commands
Post by: synthaxx_17 on February 25, 2018, 09:34:37 pm
Thanks Dim for this!

T9 is a pain when it comes to looting hehe


Title: Re: Quality of Life macro commands
Post by: Dimur on February 26, 2018, 10:36:44 pm
Another minor annoyance is the couple of low duration buffs that I use in normal gameplay and trying to keep them up, here's looking at you Kraken.  My assist hotkey is  massive, and I'm not going to go over everything that I use in it in one post, but I do have a command in it to check my buffs to see if Kraken is there.  If Kraken is not found AND my shaman (Trisdan) is within 70 units, I use a multiline command to tell my shaman to target me and cast spell slot 4 where Kraken is located along with a /popup command to indicate that it's been applied.  If Kraken is already up, nothing happens.  I could probably have it set to always refresh it on my assist call, but that seems pointless and excessive to do every few seconds.

/squelch /docommand ${If[!${Me.Buff[Spirit of the Kraken].ID} && ${Spawn[Trisdan].Distance3D}<70,/multiline ; /bct trisdan //target ${Me.Name} ; /bct trisdan //cast 4 ; /popup Krakening,]}

This bit of code can be modified easily enough for other buffs, like the druid regen line. For whatever reason, this one has a hard time evaluating multiple conditions so I used a nested if structure but it does the dirty work.

/squelch /docommand ${If[!${Me.Buff[Ancient: Druid].ID},${If[${Spawn[Dimurhippie].Distance3D}<220,/multiline ; /bct dimurhippie //target ${Me.Name} ; /bct dimurhippie //cast 1 ; /popup Ancient Druid Regen Applied,]},]}

The /squelch is there so I don't get spammed in the bccmd window every time it evaluates the if statement.  If you want to see it fire in your window each time it is run, just omit the squelch.





Title: Re: Quality of Life macro commands
Post by: Dimur on February 28, 2018, 02:31:05 pm
As much as I enjoy trying to figure all this mq2 code out, I realize most people probably either don't know what they need nor have the motivation to learn since very few come from a coding background.  Most people play EZ to get away from having to focus too hard on things they aren't motivated by.  So this next snippet is going to focus on something everyone on EZ should be familiar with again...social hotkeys.  I could post a long line of code and tell you where to copy and paste it and tell you how to execute it in game, but before I get ahead of myself and lose your interest I'm just going to show a hotkey you can use to track kill counts in T10.

This will check to see if you task window is open, if it isn't then it'll open it using the default keybind alt+q.  Then is checks your active quest list to see a quest that matches [IV: For].  If found, it clicks on that quest.  The next line again checks for a quest that matches [IV: For] and puts the task objective(s) into the bccmd window.  I do a second check for the quest before sending the objectives to the bccmd channel because if I didn't, it would send whatever quest I had highlighted's objectives.  Then this button executes the alt+q keypress again to close the window. No multilines, no nested if statements, just 4 simple lines to put into a social hotkey.

For the gnoll kill quest IV: For the Glory of Neriak:
Line 1: /if (!${Window[TaskWnd].Open}) /keypress alt+q
Line 2: /if ((${Window[TaskWnd].Child[TASK_TaskList].List[IV: For,2]}) /notify TaskWnd TASK_TaskList listselect ${Window[TaskWnd].Child[TASK_TaskList].List[IV: For,2]}
Line 3: /if ((${Window[TaskWnd].Child[TASK_TaskList].List[IV: For,2]}) /bc ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2]} Gnoll Kill Counter
Line 4: /if (${Window[TaskWnd].Open}) /keypress alt+q

Note: This will ONLY work for the specified quest.

The code can be cannibalized and used for other kill quests by simply changing the search parameters for what .List[ ] is looking for.

For the plagueborn kill quest QFI: Purge the Plagueborn:
Line 1: /if (!${Window[TaskWnd].Open}) /keypress alt+q
Line 2: /if (${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}) /notify TaskWnd TASK_TaskList listselect ${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}
Line 3: /if (${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}) /bc ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2]} Plaugeborn Kill Counter
Line 4: /if (${Window[TaskWnd].Open}) /keypress alt+q

For the





Title: Re: Quality of Life macro commands
Post by: Dimur on February 28, 2018, 02:48:44 pm
Now with this handy hotkey, you could keep it simple and have each character with their own so you can cycle to their window and click it whenever you wanted to see their progress.  Most people use /bca and /bcaa commands so they don't have to cycle to each toon to execute a command.  We can do the same thing with this hotkey!  If we add a little bit of code that's familiar (/bca, /bcaa) and a little bit of code that may not be familiar (/noparse and /squelch), we can have a good clean response from all your characters that have the quest you are checking progress on and the ones that are finished or don't have the quest won't litter the channel with any type of response.

/noparse is an MQ2 command that tells MQ2 to not try to parse the following line of text.  What this means is that if I /bcaa //say ${Me.Name}, MQ2 is going to parse that before it broadcasts it and every toon will say the name of the character the code was sent from.  If you prepend it with /noparse, then MQ2 sends the whole string to each character to parse before saying their own names.  So when I'm checking for a quest, I want each character to check their quest window to see if they have it.  Without using /noparse, I'm telling them all if I have the quest.

/squelch is an MQ2 command that tells MQ2 to hide this line of text from the bccmd window. These hotkeys while small, still send a pretty big string of code to evaluate and by default, your bccmd window will show you the command you are being sent to process.  All /squelch does is keep your bccmd window clean.  You can omit squelch if you want to send the result text in a different channel like guild, raid or whatever chat channel you have set up for it.

So we have our plagueborn tracker hotkey.  We want all toons with the plagueborn kill count quest to report their status, so we take this code:
Line 1: /if (!${Window[TaskWnd].Open}) /keypress alt+q
Line 2: /if (${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}) /notify TaskWnd TASK_TaskList listselect ${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}
Line 3: /if (${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}) /bc ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2]} Plaugeborn Kill Counter
Line 4: /if (${Window[TaskWnd].Open}) /keypress alt+q

...and we prepend each line with /noparse /squelch and /bcaa it to all toons
Line 1: /noparse /squelch /bcaa //if (!${Window[TaskWnd].Open}) /keypress alt+q
Line 2: /noparse /squelch /bcaa //if (${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}) /notify TaskWnd TASK_TaskList listselect ${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}
Line 3: /noparse /squelch /bcaa //if (${Window[TaskWnd].Child[TASK_TaskList].List[QFI: Purge,2]}) /bc ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2]} Plaugeborn Kill Counter
Line 4: /noparse /squelch /bcaa //if (${Window[TaskWnd].Open}) /keypress alt+q
Note: Since we are using the /bcaa command we also have to use an extra slash in front of the /if so MQ2 knows that it is executing a /docommand.  This should be familiar to anyone using /bc commands.

Voila!


Title: Re: Quality of Life macro commands
Post by: Dimur on March 06, 2018, 02:14:44 pm
I recently modified my loot hotkey because while doing some mass pulling/looting, I realized that I find myself having to loot a pile then move a little to loot the next stack of corpses.  It's not overly annoying if all the corpses are right at your feet, but with mobs warping right onto you when they encounter pathing issues means you need to back up to be able to hit them since they warp to a point slightly behind you.  Instead of constantly nudging up to keep looting, I just made the logic check to see if there is a corpse, then it checks to see if the corpse is close enough to loot (I set it at < 10 units and it seems to work).  If the mob is close enough, it loots and if it's too far away, as long as it's not further than 100 units away, the stick command is executed with a value of 5 and a message is sent to the bc channel.

Line 1: /tar corpse
Line 2: /docommand ${If[${Target.Distance}<10,/loot,/multiline ; /docommand ${If[${Target.Distance}<100,/stick 5,]} ; /bc Moving closer to corpse]}
Line 3: /notify LootWnd LW_LootAllButton leftmouseup
Line 4: /notify ConfirmationDialogBox No_Button leftmouseup
Line 5: /popup ${SpawnCount[radius 70 corpse]} corpses left to loot


Title: Re: Quality of Life macro commands
Post by: Dimur on March 20, 2018, 02:47:57 pm
I tend to hoard my AA points on alts until they get enough to bother with a good turn in, but I hate having to cycle through all of them after /bca //say aa to check where they are at.  I made a simple macro to parse out the AA from the ingame  command and broadcast it to the bccmd window.  You can change the /bc to /say, /rs or whatever you want but essentially it's just an easy way to display a toon's count without tabbing to their window to see.  You can copy/paste the code below into a text file and save it as countaa.mac or anything easy enough to remember.  Then to load it in game and use it, /mac countaa and /say aa.  \
Obviously to make all toons give their total you

/bca //mac countaa
and then
/bca //say aa

Code:
	#Event CountAA "Unspent AA: #1#"



Sub Main()
:Primeloop
/doevents
/goto :Primeloop
/return

|===================================================
|  SUB: Event_CountAA
|===================================================
Sub Event_CountAA(Line, AACount)
/bc Total AA: ${AACount}
/return

Honestly, I'm not sure if anyone finds these posts useful at all but am happy to keep adding things as I think of them if people actually give a shit.  Feedback is welcome, questions will be answered and any suggestions or requests would give me something else to work on.


Title: Re: Quality of Life macro commands
Post by: Dimur on March 20, 2018, 03:03:55 pm
Someone in game suggested that the max HP on /say hp be added as well, so added it in the code below.

Code:
	#Event CountAA "Unspent AA: #1#"
#Event MaxHP "Max HP: #1#"



Sub Main()
:Primeloop
/doevents
/goto :Primeloop
/return

|===================================================
|  SUB: Event_CountAA
|===================================================
Sub Event_CountAA(Line, AACount)
/bc Total AA: ${AACount}
/return

|===================================================
|  SUB: Event_MaxHP
|===================================================
Sub Event_MaxHP(Line, HPCount)
/bc Total HP: ${HPCount}
/return



Title: Re: Quality of Life macro commands
Post by: Sarthin on March 20, 2018, 07:42:01 pm
I just got back after a few years MIA and all this is really helpful to me, Dimur.
Learned quite a bit after going through and trying out your stuff.
Keep it coming!  :)

PS: Finding it really sweet to add as much as possible to macro's, rather than to type all stuff in on hotkeys.


Title: Re: Quality of Life macro commands
Post by: Dimur on March 20, 2018, 09:52:17 pm
Thanks Sarthin!
So it occurred to me that since I am parsing out the AA total from the /say aa command, I could take that value and assign it to a global variable in the macro.  Once you have that, you can use a custom UI piece or HUD element to display it and just update it every time the macro sees another  AA exp point gain message.  I haven't had much time to play with it, but each toon running the macro assigns their own global variable and can keep their displayed AA total accurate.  The appended code is below and to display it you just call the variable like any TLO for MQ2...${CurrentAA}.  If you start the macro and kill enough to get an AA point, /echo ${CurrentAA} should reflect the current AA you have.

Code:
	#Event CountAA "Unspent AA: #1#"
#Event MaxHP "Max HP: #1#"
#Event CurrentAA "#*# now have #1# ability points."



Sub Main()
:Primeloop
/doevents
/goto :Primeloop
/return

|===================================================
|  SUB: Event_CountAA
|===================================================
Sub Event_CountAA(Line, AACount)
/bc Total AA: ${AACount}
/return

|===================================================
|  SUB: Event_MaxHP
|===================================================
Sub Event_MaxHP(Line, HPCount)
/bc Total HP: ${HPCount}
/return

|===================================================
|  SUB: Event_CurrentAA
|===================================================
Sub Event_CurrentAA(Line, WhatsMyAA)
/varset CurrentAA ${WhatsMyAA}
/return


Putting it in a UI piece is a bit more involved than the HUD, but either way should work to display it for you.  Again, this is only going to be accurate for the toon whose screen you are on.  Monk with 100k aa will show their own count and Warrior with 200k aa will show his own count, etc. I suppose you could make each toon send their count total to the requester then parse it out and display it but that'd be pretty verbose and quite  likely cause incremental lag issues for each toon sending the info and having it parsed.

tl;dr This works fine to keep your current AA displayed on your screen, use the /bca say aa command to have each toon tell what their respective counts are.


Title: Re: Quality of Life macro commands
Post by: Sarthin on March 21, 2018, 05:11:41 am
Would be nice to incorporate it with the "bog control center", or any other UI addon that displays characters status.


Title: Re: Quality of Life macro commands
Post by: Dimur on March 21, 2018, 10:01:37 am
Already incorporated it into my player window...



Title: Re: Quality of Life macro commands
Post by: Dimur on March 27, 2018, 03:49:15 pm
I've recently refactored some of my T10 progression tracking aliases to remove some of the spam where characters not working on certain things would respond with zero counts on tokens, etc.  I get confused with what toon needs to loot what token when I've been putzing around flagging another group in T10 crap, so these commands checks to see if anyone has at least one of the corresponding tokens in their inventory or bank and if so, they respond with their counts.  If they don't have any, I just don't have them respond at all because otherwise all the toons that are done with all 3 armor sets would respond with their zero counts.  I already know who the new gimps progressing are and if they don't respond I know that they need to loot that type of armor token.  You can paste this code on a social hotkey or set up an alias command for it, I'm just partial to alias commands because I prefer keyboarding over mousing.

Gnoll token counter:
Code:
/noparse /bcaa //docommand ${If[(${FindItemCount[indigo vanguard]} + ${FindItemBankCount[indigo vanguard]}) > 0,/noparse /bc ${FindItemCount[indigo vanguard]} in inventory and ${FindItemBankCount[indigo vanguard]} in bank,]}

Orc token counter:
Code:
/noparse /bcaa //docommand ${If[(${FindItemCount[faydwer alliance]} + ${FindItemBankCount[faydwer alliance]}) > 0,/noparse /bc ${FindItemCount[faydwer alliance]} in inventory and ${FindItemBankCount[faydwer alliance]} in bank,]}

Sarnak token counter:
Code:
/noparse /bcaa //docommand ${If[(${FindItemCount[cabilis foreign]} + ${FindItemBankCount[cabilis foreign]}) > 0,/noparse /bc ${FindItemCount[cabilis foreign]} in inventory and ${FindItemBankCount[cabilis foreign]} in bank,]}



Title: Re: Quality of Life macro commands
Post by: Dimur on March 27, 2018, 04:11:21 pm
Here's code that checks all toons to see if they have a max ROA and if not, they respond in the /bc channel what their ring status is.  Yes, pretty useless but I like to know where my gimps are on it.

ROA checker
Code:
/noparse /bca //if (${Int[${FindItem[Ring of the Ages].ID}]} != 117000) /squelch /bca //echo ${Me.Name} ${FindItem[Ring of the Ages].Name}


Title: Re: Quality of Life macro commands
Post by: Dimur on April 02, 2018, 12:32:56 pm
Loot enough stacks of corpses and eventually you zombie out and press Loot, Stand, Loot, Stand in a rhythm and invariably miss something you actually wanted to loot sucks, so I added a line to my loot hotkey to echo the corpse I am looting by name and ID.  That way you can keep looting the rest and after checking all corpses, /hidec off to display them all again and /tar id 1234, replacing the 1234 with the actual ID you noted before and /loot.

/bc  Looting ${Target.Name} ID: ${Target.ID}


Title: Re: Quality of Life macro commands
Post by: Dimur on April 02, 2018, 01:00:49 pm
Added an event to the super basic macro from earlier to let you execute a FindItem and FindItemBank command to check for an existing item and if found to return a count of that item in your inventory and a count of that item in your bank.  This can easily be /bca to any toons running the macro.  The search does not  require an exact match, just a partial match.  Instead of having to type out the whole name of Glowing Sun Shard, I can just /echo  finditem sun shard and get a summary search returned.  Pic posted below the code to illustrate.

Code:
	#Event CountAA "Unspent AA: #1#"
#Event MaxHP "Max HP: #1#"
#Event CurrentAA "#*# now have #1# ability points."
#Event FindItem "[MQ2] finditem #1#"



Sub Main()
:Primeloop
/doevents
/goto :Primeloop
/return

|===================================================
|  SUB: Event_CountAA
|===================================================
Sub Event_CountAA(Line, AACount)
/bc Total AA: ${AACount}
/return

|===================================================
|  SUB: Event_MaxHP
|===================================================
Sub Event_MaxHP(Line, HPCount)
/bc Total HP: ${HPCount}
/return

|===================================================
|  SUB: Event_CurrentAA
|===================================================
Sub Event_CurrentAA(Line, WhatsMyAA)
/varset CurrentAA ${WhatsMyAA}
/return

|-----------------------------------------------------------------------------------------------
|  SUB: Event_FindItem
|-----------------------------------------------------------------------------------------------
Sub Event_FindItem(Line, whichItem)
/docommand ${If[${FindItemCount[${whichItem}]} > 0,/bc ${FindItemCount[${whichItem}]} ${FindItem[${whichItem}]} in inventory,/bc None in inventory]}
/docommand ${If[${FindItemBankCount[${whichItem}]},/bc ${FindItemBankCount[${whichItem}]} ${FindItemBank[${whichItem}]} in bank,/bc None in bank]}
/return




Title: Re: Quality of Life macro commands
Post by: Dimur on April 14, 2018, 05:16:31 pm
I fluctuate in how many toons to log on in a session and usually start at 12, but sometimes something will drop that offline alts could use and I end up logging them on.  I like lazy, so I made a macro for being able to invite them to the instance without having to remember the syntax.  Two of the parts  look to see how many toons I have in the Netbots channel and sends each of them an invite.  The first one just raid invites every toon online into a raid instance of my current zone.  The second one lets me supply both the zone name and instance type and then invites every toon in my Netbots.  I made a third part to watch for incoming tells for people who I need to invite to the specified instance and auto-invites them, so if someone wants access to the zone they can just say the trigger text in a tell and receive an automatic invite.  I'm just going to append the simple macro that this post has been fleshing out with the code.

Code:
	#Event CountAA "Unspent AA: #1#"
#Event MaxHP "Max HP: #1#"
#Event CurrentAA "#*# now have #1# ability points."
#Event FindItem "[MQ2] finditem #1#"
        #Event InviteAllNetBotsClientsCurrentZoneRaid "#*#inviteall raid#*#"
#Event InviteSuppliedTypeAndZone "#*#invite to #1# #2#"
#Event Inviter "#3# tells you, 'invite me to instance #1# #2#'"


Sub Main()
:Primeloop
/doevents
/goto :Primeloop
/return

|===================================================
|  SUB: Event_CountAA
|===================================================
Sub Event_CountAA(Line, AACount)
/bc Total AA: ${AACount}
/return

|===================================================
|  SUB: Event_MaxHP
|===================================================
Sub Event_MaxHP(Line, HPCount)
/bc Total HP: ${HPCount}
/return

|===================================================
|  SUB: Event_CurrentAA
|===================================================
Sub Event_CurrentAA(Line, WhatsMyAA)
/varset CurrentAA ${WhatsMyAA}
/return

|-----------------------------------------------------------------------------------------------
|  SUB: Event_FindItem
|-----------------------------------------------------------------------------------------------
Sub Event_FindItem(Line, whichItem)
/docommand ${If[${FindItemCount[${whichItem}]} > 0,/bc ${FindItemCount[${whichItem}]} ${FindItem[${whichItem}]} in inventory,/bc None in inventory]}
/docommand ${If[${FindItemBankCount[${whichItem}]},/bc ${FindItemBankCount[${whichItem}]} ${FindItemBank[${whichItem}]} in bank,/bc None in bank]}
/return

|===================================================
|  SUB: Event_InviteAllNetBotsClientsCurrentZoneRaid
|===================================================
Sub Event_InviteAllNetBotsClientsCurrentZoneRaid
/declare i int
/for i 1 to ${NetBots.Counts}
/say raid invite ${Zone.ShortName} ${NetBots.Client.Arg[${i}, ]}
/next i
/return

|===================================================
| SUB: Event_InviteSuppliedTypeAndZone
|===================================================
Sub Event_InviteSuppliedTypeAndZoneTypeAndZone(Line,whichZone,whichType)
/declare j int
/for j 1 to ${NetBots.Counts}
/say ${whichType} invite ${whichZone} ${NetBots.Client[${j}]}
/next j
/return

|===================================================
| Sub Event_Inviter
|===================================================
Sub Event_Inviter(Line,whatZone,whatType,InviteMe)
/say ${whatType} invite ${whatZone} ${InviteMe}
/return


Title: Re: Quality of Life macro commands
Post by: Dimur on April 15, 2018, 05:26:04 pm
It's pretty rare to have to form up groups and create a raid, with the server running nonstop and not having to be rebooted for months at a time, but once in a while I get a zone crash that disbands the raid.  I had a hotkey to form the groups then I'd simply raidinvite the leaders, but in the interests of maximizing my laziness I put it all on a single hotkey.

Line 1:/multiline ; /invite toon2; /invite toon3; /invite toon4; /invite toon5; /invite toon5; /invite toon6
Line 2:/multiline ; /bct toon7 //invite toon8; /timed 3 /bct toon7 //invite toon9; /timed 6 /bct toon7 //invite toon10; /timed 9 /bct toon7 //invite toon11; /timed 12 /bct toon7 //invite toon12
Line 3:/multiline ; /bct toon13 //invite toon14; /timed 3 /bct toon13 //invite toon15; /timed 6/bct toon13 //invite toon16; /timed 9 /bct toon13 //invite toon17; /timed 12/bct toon13 //invite toon18; /timed 18 /bca //invite
Line 4:/multiline ; /raidinvite toon7; /raidinvite toon13
Line 5:/timed 30 /bca //raidaccept

Items of note:
    1. Group one is all control toon inviting, group two is control toon sending the command to group 2 leader (toon7) and group 3 is the control toon sending the command to group 3 leader (toon13).
    2. The multiline command uses the semicolon ; as the delimiter, but in order for you to be able to send the invite command the ; must immediately follow the toon name...there can NOT be a space between the /toon2 and the ;.
    3. The commands in the second and third line are all preceeded by a /timed command, this is to space out the commands a bit so stuff doesn't get spammed too fast to process
    4. The third line is appended with a timed command for sending the invite command to all toons, this acts as the way to get the toons to accept the invite they were sent and join their group
    5. The fourth line is a simple command sent to both group leaders to send raidinvites to the group leaders
    6. The fifth line is a timed command to the group leaders to accept the raid invite



Title: Re: Quality of Life macro commands
Post by: Sarthin on April 16, 2018, 01:16:31 am
This is nice. Now I have an open slot for another hot button  ;D I was previously doing it in two hot key macros, like you.


Title: Re: Quality of Life macro commands
Post by: Dimur on April 17, 2018, 11:01:15 am
While trading items or coin between toons, having to alt+Tab or mouseclick to a window to confirm the trade you are making is far more effort than my lazy can endure, so here's a quick command to tell the toon you are trading with to click trade on their trade confirmation window.

/bct ${Target.CleanName} //notify TradeWnd TRDW_Trade_Button leftmouseup


Title: Re: Quality of Life macro commands
Post by: Sarthin on April 17, 2018, 04:21:03 pm
....... far more effort than my lazy can endure
/bct ${Target.CleanName} //notify TradeWnd TRDW_Trade_Button leftmouseup


My lazy ass just got more lazy. This one was really nice, Dimur.


Title: Re: Quality of Life macro commands
Post by: Dimur on May 22, 2018, 06:31:03 pm
A new one via a suggestion by Sarthin, it sends a /bca to all toons and checks their cursor...any with an item on their cursor respond with what's on their cursor.  It's handy for T10 when you kill Ro'Ki and want to know how many immaculates end up on your toons' cursors.

/noparse /bca //if (${Cursor.ID}) /bc ${Cursor}



Title: Re: Quality of Life macro commands
Post by: Kwai on May 23, 2018, 02:12:53 pm
A new one via a suggestion by Sarthin, it sends a /bca to all toons and checks their cursor...any with an item on their cursor respond with what's on their cursor.  It's handy for T10 when you kill Ro'Ki and want to know how many immaculates end up on your toons' cursors.

/noparse /bca //if (${Cursor.ID}) /bc ${Cursor}



Awesome!  If you don't mind me asking... what would be the code for :

 put that item on your cursor into your first open bag slot


Title: Re: Quality of Life macro commands
Post by: Dimur on May 23, 2018, 03:34:07 pm
/autoinventory

is the command, I believe.


Title: Re: Quality of Life macro commands
Post by: Sarthin on May 23, 2018, 04:03:09 pm
/autoinventory

is the command, I believe.


That one works like a charm. Puts it in the first free bag slot.


Title: Re: Quality of Life macro commands
Post by: Rent Due on May 24, 2018, 12:52:27 am
instead, use: /givetorent command


Title: Re: Quality of Life macro commands
Post by: Dimur on June 10, 2018, 07:26:16 pm
This little macro will check to see if you have the Embalmers Skinning Knife in inventory and an open inventory slot, if so it just clicks the dagger to summon a 5 stack of mystery meat and autoinventories it until you get 100 stockpiled.

Code:
	

Sub Main()
/bc Summoning some Mystery Meat, this should net you 100 by the time it's done
:Primeloop
/call ClickFood
/goto :Primeloop
/return

|=====================================================================
| SUB ClickFood
|=====================================================================
Sub ClickFood
/if (${Me.FreeInventory} > 0) {
/if (${FindItem[embalmers].ID}) {
/if (${FindItemCount[mystery]} < 100) {
/casting 29280
/timed 55 /autoinventory
/delay 1s
}
}
}
/return


Title: Re: Quality of Life macro commands
Post by: Dimur on August 02, 2018, 11:49:12 am
Dewphrane was asking on /ooc if there was a macro to do item turn ins like crystals to PoDragons tikis and I didn't know if there was one, so I just made a quick and dirty 3 line social that works for me.  I don't use the compile on mqemulator.net but rather another compile, and maybe that's the issue, but I couldn't get this hotkey to work for him.  I'm posting it here in case anyone else wants to help me troubleshoot it or tell me whether or not it works for them.

First of all, this code is targeting the 10th slot of the 8th bag in your inventory...so it assumes you have a 10 slot bag in your last bag slot.  I have my magic box in that slot by default, but you could use a tinkerer's bag or w/e, as long as it's a 10 slot bag.  I also play in first person, so it's easy for me to center the turn in npc on my screen.  Line 2 doesn't care what's on the screen, it just knows to click in the middle of the screen.  Even if you play in the 3rd person view, you should be able to center the npc on the screen so this works.
Again, you MUST have a 10 slot bag in your last bag slot AND you MUST center the npc on the screen, but if you can meet both conditions this is a quick and simple hotkey press to do the hand ins.

Line 1: /if (${InvSlot[pack8].Item.Item[10].ID}) /ctrl /itemnotify in pack8 10 leftmouseup
Line 2: /if (${Cursor.ID}) /click left center
Line 3: /if (${Window[GiveWnd].Open}) /timed 3 /notify GiveWnd GVW_Give_Button leftmouseup

The code is very simplistic and has a few conditionals before trying to execute.  Line 1 reads as If Slot 10 of Bag 8 is not empty, hold down the control key and click whatever is in that slot.  Since crystals are stacked items, you need to hold the control key down or you'll get the quantity window to pop up.  Line 2 simply says If you have an item on your cursor, mouseclick the center of the screen with your left mouse button.  You shouldn't have an item on your cursor if the line 1 doesn't find an item it can pick up, so this only executes if there's an item on the cursor.  Line 3 reads as If the window to hand items to NPCs is open, click the give button on that window.  You won't have the give window open if line 2 doesn't succeed so you can't press the give button anyhow.

***I recently discovered the click command can just click the target for you, so updating line 2 in this social to do that instead of having to center the npc on the screeen.  This just tells MQ2 to simulate you left mouse clicking on your target, regardless of how many character models may be around your target.

Line 1: /if (${InvSlot[pack8].Item.Item[10].ID}) /ctrl /itemnotify in pack8 10 leftmouseup
Line 2: /if (${Cursor.ID}) /click left target
Line 3: /if (${Window[GiveWnd].Open}) /timed 3 /notify GiveWnd GVW_Give_Button leftmouseup


Title: Re: Quality of Life macro commands
Post by: ZerarWarrior on August 14, 2018, 03:34:16 am
I am trying to get that food summoning thing working for the Dead Dracnid item that summons Special Dracnid Steaks... any idea how to adjust that macro for summoning Special Dreacnid Steaks? (Item ID for Dead Dracnid is 112947 according to MQ2, and the spell ID is 9917 also per MQ2, but I tried plugging in those numbers into the macro and it just doesn't work.


Title: Re: Quality of Life macro commands
Post by: Peign on August 14, 2018, 10:06:37 am
I am trying to get that food summoning thing working for the Dead Dracnid item that summons Special Dracnid Steaks... any idea how to adjust that macro for summoning Special Dreacnid Steaks? (Item ID for Dead Dracnid is 112947 according to MQ2, and the spell ID is 9917 also per MQ2, but I tried plugging in those numbers into the macro and it just doesn't work.

Code:
Sub Main()
/bc Summoning some Mystery Meat, this should net you 100 by the time it's done
:Primeloop
/call ClickFood
/goto :Primeloop
/return

|=====================================================================
| SUB ClickFood
|=====================================================================
Sub ClickFood
/if (${Me.FreeInventory} > 0) {
/if (${FindItem[dracnid].ID}) {
/if (${FindItemCount[steaks]} < 100) {
/casting 29280
/timed 55 /autoinventory
/delay 1s
}
}
}
/return


Try that.   Need to change the FindItem value and the FindItemCount value to correspond to the Dead Dracnid item.      Should spend some time in tofs level 4 and get the skinning knife though, its moar HP!


Title: Re: Quality of Life macro commands
Post by: synthaxx_17 on August 15, 2018, 12:25:24 am
I am trying to get that food summoning thing working for the Dead Dracnid item that summons Special Dracnid Steaks... any idea how to adjust that macro for summoning Special Dreacnid Steaks? (Item ID for Dead Dracnid is 112947 according to MQ2, and the spell ID is 9917 also per MQ2, but I tried plugging in those numbers into the macro and it just doesn't work.

Code:
Sub Main()
/bc Summoning some Mystery Meat, this should net you 100 by the time it's done
:Primeloop
/call ClickFood
/goto :Primeloop
/return

|=====================================================================
| SUB ClickFood
|=====================================================================
Sub ClickFood
/if (${Me.FreeInventory} > 0) {
/if (${FindItem[dracnid].ID}) {
/if (${FindItemCount[steaks]} < 100) {
/casting 29280
/timed 55 /autoinventory
/delay 1s
}
}
}
/return


Try that.   Need to change the FindItem value and the FindItemCount value to correspond to the Dead Dracnid item.      Should spend some time in tofs level 4 and get the skinning knife though, its moar HP!


!!!


Title: Re: Quality of Life macro commands
Post by: ZerarWarrior on August 15, 2018, 04:07:10 pm
I tried that coding, but it did not work for me, are there specific plugins or something that need to be loaded for this to work?


Title: Re: Quality of Life macro commands
Post by: Dimur on August 18, 2018, 01:48:36 pm
No special plugins should be required for this to work.  It uses the FindItem TLO of the mq2main plugin to see if you have the item by name and if you do it uses the FindItemCount TLO to see if you have less than 100 of whatever you are summoning by name using a partial match parameter, this can be done by id as well. If both the item used to summon is found and there are less than 100 of the summoned food it issues the cast command based on id of the click spell on the item. This assumes the item being clicked is not required to be equipped to be activated, does the drachnid leg thing say Must Equip on it? Additionally you can't activate an item if you have the bank window open. Aside from those two possibilities I don't know why it wouldn't work if the conditions are met.


Title: Re: Quality of Life macro commands
Post by: ZerarWarrior on August 19, 2018, 06:04:30 pm
The item does not have to be equipped and the bank window is not open


Title: Re: Quality of Life macro commands
Post by: ZerarWarrior on August 30, 2018, 01:21:14 pm
So here is how we (Thanks Dimurwar for helping me work through it) came up with that works.

This works well and I will run it when I am going to leave my computer for a while and I am trying to make sure my toons keep their food levels up. You can change the message and the qty for your liking.

The clickie needs to be in the second bag and in the 7th slot (Or 6th if you count the first slot as 0 like MQ does. Basically 4th from the last.)

Sub Main()
   /bc Summoning some Special Dracnid Steaks, this should net you 1000 by the time it's done
   :Primeloop
      /call ClickFood
      /goto :Primeloop
   /return
   
|=====================================================================
| SUB ClickFood
|=====================================================================
   Sub ClickFood
      /if (${Me.FreeInventory} > 0) {
         /if (${FindItem[dracnid].ID}) {
            /if (${FindItemCount[steak]} < 1000) {
               /useitem 24 6
               /timed 55 /autoinventory
               /delay 1s
            }
         }
      }
      /return


Title: Re: Quality of Life macro commands
Post by: Dimur on September 03, 2018, 02:42:12 am
I had a huge stack of MCP tokens banked that I never turned in because it's a pain in the ass to click 4 tokens and hand them to the Observer dude and click give to bother spawning random bosses, so my laziness motivated me to create a social to send a tell to a toon I positioned at the observer to hand in 4 and spawn the boss from just pressing the hotkey.  The toon doing the hand ins has a 10 slot bag in their 8th bag slot and in the last slot in the bag, so this code only works if you put a stack of MCP tokens in that slot.

***DISCLAIMER***This code does NOT contain error handling, so if you are a dumbass and place anything in the specified slot, IT WILL NOT CARE and it WILL try to give whatever item was in that slot to the Observer npc.  Error handling can be added, but there is a limit to the number of character slots available in a social hotkey, in order to enable error handling for social hotkeys that exceed the character limit you would have to assign some of the social lines as ALIAS commands.  Without doing this, there simply isn't enough room on the line to use conditional statements...I can post the code you can use in an alias if people want error checking for this, if you want this please respond so I don't end up wasting my time explaining how it works to people who don't care. I take no responsibility for anyone being stupid enough to hand shit into this npc because of their own negligence. YOU HAVE BEEN WARNED!

First and foremost, this using the /timed command to execute the hand ins so it doesn't try to hand all 4 in at the same time.  The character name I use in this code is Dimurskank, so replace that name with whatever the name of your toon doing the hand ins is.  This also prepends the commands being sent with /squelch to keep your mq2 window from being spammed with each command.  The last line tells you in your mq2 window how many turn ins of 4 tokens you have left in the stack on the hand in toon.  The code is simple, it just tells the hand in toon to pick up one item from the stack in the last slot of bag 8 and hand it in to the npc you have targeted...the target is assigned on the first line as the Observer.  It does this 4 times then clicks the give button in the window.  The code is posted below, if there are issues with implementing this I'll do my best to help...post issues/questions in this thread.

Line 1: /multiline ; /squelch /bct dimurskank //target observer ; /noparse /squelch /bct dimurskank //ctrlkey /itemnotify in pack8 10 leftmouseup ; /timed 3 /squelch /bct dimurskank //click left target
Line 2: /multiline ; /timed 6 /noparse /squelch /bct dimurskank //ctrlkey /itemnotify in pack8 10 leftmouseup ; /timed 9 /squelch /bct dimurskank //click left target
Line 3: /multiline ; /timed 12 /noparse /squelch /bct dimurskank //ctrlkey /itemnotify in pack8 10 leftmouseup ; /timed 15 /squelch /bct dimurskank //click left target
Line 4: /multiline ; /timed 18 /noparse /squelch /bct dimurskank //ctrlkey /itemnotify in pack8 10 leftmouseup ; /timed 21 /squelch /bct dimurskank //click left target ; /noparse /squelch /bct dimurskank //timed 24 /notify GiveWnd GVW_Give_Button leftmouseup
Line 5: /noparse /squelch /bct dimurskank //bc Handing in, boss mob soon...${Math.Calc[${FindItemCount[mcp]} / 4].Int} sets of 4 MCP token turn ins left

***AGAIN***Please make sure the 8th bag, last slot has a stack of MCP tokens in it before blindly pressing this button.  If people want to use error checking by assigning these lines/commands to alias commands, I can do that as well but unless there is active interest I'm not going to bother.USE THIS AT YOUR OWN RISK

***Updated below***
The error handling code, to make sure you only execute the command when you have MCP tokens in the 10th slot of the 8th bag.  It only fires if you are in the correct zone and the item id of the item in that slot is the item id for an MCP token.
/if (${InvSlot[pack8].Item.Item[10].ID} == 112938)
To use this conditional, all you need to do is prepend the code for Line 1 through Line 4 with it.  The problem is when you get to line 4, the code is already almost as long as you can fit into the social hotkey so this is where you'd set up an alias command in mq2 and call that.  The alias can be whatever you want to call it, when you set it mq2 will save it to the mq2.ini file and you can call it in game. So even if I just want to call it /mcp, assign it like this:
/alias /mcp /noparse /squelch /bct dimurskank //if (${Zone.ShortName.Equal[airplane]} && ${InvSlot[pack8].Item.Item[10].ID} == 112938)

Then you'd just prepend line 1 - 4 with the alias, resulting in a hotkey that looks like:
Line 1: /mcp /multiline ; /squelch /bct dimurskank //target observer ; /noparse /squelch /bct dimurskank //ctrlkey /itemnotify in pack8 10 leftmouseup ; /timed 3 /squelch /bct dimurskank //click left target
Line 2: /mcp /multiline ; /timed 6 /noparse /squelch /bct dimurskank //ctrlkey /itemnotify in pack8 10 leftmouseup ; /timed 9 /squelch /bct dimurskank //click left target
Line 3: /mcp /multiline ; /timed 12 /noparse /squelch /bct dimurskank //ctrlkey /itemnotify in pack8 10 leftmouseup ; /timed 15 /squelch /bct dimurskank //click left target
Line 4: /mcp /multiline ; /timed 18 /noparse /squelch /bct dimurskank //ctrlkey /itemnotify in pack8 10 leftmouseup ; /timed 21 /squelch /bct dimurskank //click left target ; /noparse /squelch /bct dimurskank //timed 24 /notify GiveWnd GVW_Give_Button leftmouseup
Line 5: /noparse /squelch /bct dimurskank //bc Handing in, boss mob soon...${Math.Calc[${FindItemCount[mcp]} / 4].Int} sets of 4 MCP token turn ins left

Now every time a line of code is executed, it first checks to see that you have MCP tokens in the 10th slot of the 8th bag.  If you don't, the conditional fails and the multiline doesn't execute.

** Added an additional check to the conditional for correct zonee


Title: Re: Quality of Life macro commands
Post by: Dimur on September 04, 2018, 05:00:51 pm
Considering that this is a bot heavy server and you'll generally have a mass of toons clumped together, it can be a bit tedious to transfer items from one toon to another.  If I have a cluster of toons, I used to cycle to the toon who I need to hand it to and move them away from the pack so I could click them without accidentally handing in to the wrong one.  You can do this in a simple command to the toon, just tell them to move to you.  In this case, I prefer to use the /moveto command as opposed to /stick, because I only want them to move to me, not follow me around.

/bct dimur //moveto id ${Me.ID}

That's an easy social to set up and it works, but it's not the only way to do it.  You can also /target the PC and tell MQ2 to hand it to your target.

First, target the person you are handing to using the /target command.  Note the additional parameter PC, this keeps it from targeting a pet if the toon has one up.
/target dimur pc
Once targeted, use the following command:
/click left target

That will simulate left clicking the mouse onto your target and open up the trade window.  Then you can use the code posted earlier in this thread to tell the receiving toon to click the trade button.
/bct ${Target.CleanName} //notify TradeWnd TRDW_Trade_Button leftmouseup

And that's how to do a transfer to a toon the lazy way, without having to cycle through windows.



Title: Re: Quality of Life macro commands
Post by: Dimur on September 22, 2018, 03:30:44 pm
Here's a quick 3 line social for handing in the Mask of Experience.  This code assumes you have the Mask of Experience on your cursor and ready to hand in.  If you have multiple hand ins to do, just keep the mask on the cursor and hit the button as many times as you need to.

Line 1: /target experience npc
Line 2: /if (${Target.CleanName.Find[experience]} > 0) /click left target
Line 3: /timed 2 /if (${Window[GiveWnd].Open}) /notify GiveWnd GVW_Give_Button leftmouseup

Line one targets an npc whose name contains experience, so unless you are in the crafer's hall you won't acquire a target.

Line two uses a conditional to see if your target has a name that contains experience using the Find function for string objects.  This does a search match and returns the starting index of the string that's found, otherwise it returns NULL.  So unless you have the specific npc targeted it won't open the give window to try to hand it in. If the frog is close enough to click, it left clicks him and opens up the give window.  The give window is the window that opens up when you try to hand something to an NPC.

Line three uses another conditional that checks to see that the give window has been opened, if yes it clicks the give button and the mask gets handed back to you, either upgraded and AA's for the upgrade are spent or not upgraded and you get a message telling you how many AA's you need to get the next upgrade. If the give window isnt open, it does nothing.  This line of code is prepended with a /timed delay of .2 seconds to account for lag and give time for the give window to open up before processing this line.





Title: Re: Quality of Life macro commands
Post by: Sarthin on November 26, 2018, 06:31:39 am
Hi-jacking thread for a small quality of life command. Not exactly a macro, but just a .bat command to insta-kill all EQ clients.
Open notepad and add this text in it.

taskkill /f /im eqgame.exe


Save file and change extension to .bat (may have to uncheck "hide extensions for known file types" first)

Right click and run as admin, and it should kill all clients you got up. Handy if they freeze.


Title: Re: Quality of Life macro commands
Post by: Rakharth on December 03, 2018, 04:20:19 pm
Dewphrane was asking on /ooc if there was a macro to do item turn ins like crystals to PoDragons tikis and I didn't know if there was one, so I just made a quick and dirty 3 line social that works for me.  I don't use the compile on mqemulator.net but rather another compile, and maybe that's the issue, but I couldn't get this hotkey to work for him.  I'm posting it here in case anyone else wants to help me troubleshoot it or tell me whether or not it works for them.

First of all, this code is targeting the 10th slot of the 8th bag in your inventory...so it assumes you have a 10 slot bag in your last bag slot.  I have my magic box in that slot by default, but you could use a tinkerer's bag or w/e, as long as it's a 10 slot bag.  I also play in first person, so it's easy for me to center the turn in npc on my screen.  Line 2 doesn't care what's on the screen, it just knows to click in the middle of the screen.  Even if you play in the 3rd person view, you should be able to center the npc on the screen so this works.
Again, you MUST have a 10 slot bag in your last bag slot AND you MUST center the npc on the screen, but if you can meet both conditions this is a quick and simple hotkey press to do the hand ins.

Line 1: /if (${InvSlot[pack8].Item.Item[10].ID}) /ctrl /itemnotify in pack8 10 leftmouseup
Line 2: /if (${Cursor.ID}) /click left center


Wouldn't target crystal guys also would hand in a crystal but not always give it over.
Line 3: /if (${Window[GiveWnd].Open}) /timed 3 /notify GiveWnd GVW_Give_Button leftmouseup

The code is very simplistic and has a few conditionals before trying to execute.  Line 1 reads as If Slot 10 of Bag 8 is not empty, hold down the control key and click whatever is in that slot.  Since crystals are stacked items, you need to hold the control key down or you'll get the quantity window to pop up.  Line 2 simply says If you have an item on your cursor, mouseclick the center of the screen with your left mouse button.  You shouldn't have an item on your cursor if the line 1 doesn't find an item it can pick up, so this only executes if there's an item on the cursor.  Line 3 reads as If the window to hand items to NPCs is open, click the give button on that window.  You won't have the give window open if line 2 doesn't succeed so you can't press the give button anyhow.

***I recently discovered the click command can just click the target for you, so updating line 2 in this social to do that instead of having to center the npc on the screeen.  This just tells MQ2 to simulate you left mouse clicking on your target, regardless of how many character models may be around your target.

Line 1: /if (${InvSlot[pack8].Item.Item[10].ID}) /ctrl /itemnotify in pack8 10 leftmouseup
Line 2: /if (${Cursor.ID}) /click left target
Line 3: /if (${Window[GiveWnd].Open}) /timed 3 /notify GiveWnd GVW_Give_Button leftmouseup



Title: Re: Quality of Life macro commands
Post by: Dimur on December 03, 2018, 06:56:04 pm
Was there an issue you were having with the post you quoted?  You never really say, just a quote of a reply a few posts above yours.


Title: Re: Quality of Life macro commands
Post by: Raygan on December 05, 2018, 03:42:07 pm
Hi-jacking thread for a small quality of life command. Not exactly a macro, but just a .bat command to insta-kill all EQ clients.
Open notepad and add this text in it.

taskkill /f /im eqgame.exe


Save file and change extension to .bat (may have to uncheck "hide extensions for known file types" first)

Right click and run as admin, and it should kill all clients you got up. Handy if they freeze.


I find just restarting the computer works too  ;)


Title: Re: Quality of Life macro commands
Post by: Rakharth on December 05, 2018, 04:43:17 pm
Was there an issue you were having with the post you quoted?  You never really say, just a quote of a reply a few posts above yours.
oh wierd i actually commented but it didnt go through sorry. Yea it doesnt target the npc if i target the npc and use the macro it hands in a crystal but doesnt give it to him


Title: Re: Quality of Life macro commands
Post by: Dimur on December 05, 2018, 05:55:53 pm
Hit me up in game on Dimurwar, we'll get it figured out bud.


Title: Re: Quality of Life macro commands
Post by: Rakharth on December 07, 2018, 03:28:54 pm
Line 1: /tar corpse
Line 2: /docommand ${If[${Target.Distance}<10,/loot,/multiline ; /docommand ${If[${Target.Distance}<100,/stick 5,]} ; /bc Moving closer to corpse]}
Line 3: /notify LootWnd LW_LootAllButton leftmouseup
Line 4: /notify ConfirmationDialogBox No_Button leftmouseup
Line 5: /popup ${SpawnCount[radius 70 corpse]} corpses left to loot
[/quote]


Cant get this to work for me doesn't click loot all button


Title: Re: Quality of Life macro commands
Post by: Sarthin on December 07, 2018, 03:52:59 pm
I just tested it and it works perfect for me. What MQ2 compile do you run?


Title: Re: Quality of Life macro commands
Post by: Rakharth on December 07, 2018, 09:34:04 pm
Rof2 one


Title: Re: Quality of Life macro commands
Post by: RedDwarf on December 08, 2018, 06:18:14 am
Where from and how old
Lots of different builds out there
MQEmulator/Redguides/MMOBugs/Own Build etc etc

Red


Title: Re: Quality of Life macro commands
Post by: Rakharth on December 08, 2018, 07:17:37 am
MQemulator


Title: Re: Quality of Life macro commands
Post by: s0rcier on December 08, 2018, 09:43:18 pm
Line 1: /tar corpse
Line 2: /docommand ${If[${Target.Distance}<10,/loot,/multiline ; /docommand ${If[${Target.Distance}<100,/stick 5,]} ; /bc Moving closer to corpse]}
Line 3: /notify LootWnd LW_LootAllButton leftmouseup
Line 4: /notify ConfirmationDialogBox No_Button leftmouseup
Line 5: /popup ${SpawnCount[radius 70 corpse]} corpses left to loot


Cant get this to work for me doesn't click loot all button
[/quote]

not sure what u are trying to achieve but u can download macro movetolootall posted in another thread and make this hotkey
Code:
Line 1: /mac movetolootall

it does everything you are looking for ;)


Title: Re: Quality of Life macro commands
Post by: Dimur on September 13, 2020, 02:22:34 pm
Someone on RedGuides asked if there was a way to turn audio off on all EQ windows in the background and only have audio on for the window in the foreground, so I whipped this up and thought I'd share it here as well.

You could just drop a sub in your Main loop to set any EQ window in the foreground to load whatever your desired sound settings are and to turn all sound settings off when in the background.
Slider values are base 5 iirc, so to set your volume to 50 on slider values you'd use 10, something like this would work I think. I'm not logged on to test it but if it doesn't work let me know.
Code:
    Sub Main
        ...stuff
        /call AudioHandler
    /return

    Sub AudioHandler
        /if (!${EverQuest.Foreground}) {
            /notify OptionsGeneralPage OGP_SoundRealismSlider newvalue 0
            /notify OptionsGeneralPage OGP_MusicVolumeSlider newvalue 0
            /notify OptionsGeneralPage OGP_SoundVolumeSlider newvalue 0
            /if (${Window[OptionsGeneralPage].Child[OGP_EnvSoundsCheckbox].Checked}) /notify OptionsGeneralPage OGP_EnvSoundsCheckbox leftmouseup
            /if (${Window[OptionsGeneralPage].Child[OGP_CombatMusicCheckbox].Checked}) /notify OptionsGeneralPage OGP_CombatMusicCheckbox leftmouseup

        } else {
            /notify OptionsGeneralPage OGP_SoundRealismSlider newvalue 10
            /notify OptionsGeneralPage OGP_MusicVolumeSlider newvalue 10
            /notify OptionsGeneralPage OGP_SoundVolumeSlider newvalue 10
            /if (!${Window[OptionsGeneralPage].Child[OGP_EnvSoundsCheckbox].Checked}) /notify OptionsGeneralPage OGP_EnvSoundsCheckbox leftmouseup
            /if (!${Window[OptionsGeneralPage].Child[OGP_CombatMusicCheckbox].Checked}) /notify OptionsGeneralPage OGP_CombatMusicCheckbox leftmouseup
        }
    /return


Title: Re: Quality of Life macro commands
Post by: Dimur on September 13, 2020, 02:39:27 pm
I'm not sure how much people mess around with MQ2 and TLOs, but for anyone interested, I wrote a quick macro to return all of the members for any TLO.  Without getting into too much detail, a TLO is a top level object for MQ2 and is basically how you get a value returned for a query. 

/echo ${Me.Race}

The TLO in this case is the ${Me} and the member is Race. There are 316 members that ${Me} can access and you can use this macro to identify or any TLO for that matter.  This macro will watch for event triggers, this way you can pass a value to the subroutine to evaluate.  If I want the members for ${Window} TLO, I supply that as part of the echo command.

I did make it only spit out 100 at a time, if there are more than 100 members it pauses the macro and you can display the next 100 by typing /mqp and hitting enter.

/echo gmember window

This lists all 36 members for the window TLO.  If none of this makes sense, read the MacroQuest 2 wiki TLO section.  Just wanted to post this in case anyone else can benefit from it.

Code:
    #Event GetMember "[MQ2] gmember #1#"

    Sub Main
        /doevents
    /return

Sub Event_GetMember(Line, Member)
/declare n int local
/echo Members for ${Member}
/for n 1 to 100
/if (${Type[${Member}].Member[${n}].Length}>0) /echo ${n}. ${Type[${Member}].Member[${n}]}
/next n
/if (${Type[${Member}].Member[101].Length}>0) {
/echo Type /mqp to iterate through the next 100 members
/mqp
/for n 101 to 200
/if (${Type[${Member}].Member[${n}].Length}>0) /echo ${n}. ${Type[${Member}].Member[${n}]}
/next n
}
/if (${Type[${Member}].Member[201].Length}>0) {
/echo Type /mqp to iterate through the next 100 members
/mqp
/for n 201 to 300
/if (${Type[${Member}].Member[${n}].Length}>0) /echo ${n}. ${Type[${Member}].Member[${n}]}
/next n
}
/if (${Type[${Member}].Member[301].Length}>0) {
/echo Type /mqp to iterate through the next 100 members
/mqp
/for n 301 to 400
/if (${Type[${Member}].Member[${n}].Length}>0) /echo ${n}. ${Type[${Member}].Member[${n}]}
/next n
}
/return