• 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 - Multiline interprets " ; " as part of the target's name

Joined
Mar 20, 2024
RedCents
1,051¢
Hi all,

I have the following multi-line command, where Character_1 aims to invite my other 5 characters into a group, and then tells them to accept the invite:

Code:
/multiline ;
/timed 1 /disband ;
/timed 2 /invite Character_2 ;
/timed 2 /invite Character_3 ;
/timed 2 /invite Character_4 ;
/timed 2 /invite Character_5 ;
/timed 2 /invite Character_6 ;
/timed 3 /dex Character_2 /invite ;
/timed 3 /dex Character_3 /invite ;
/timed 3 /dex Character_4 /invite ;
/timed 3 /dex Character_5 /invite ;
/timed 3 /dex Character_6 /invite

The problem that I am having is the the instruction "/invite" interprets the " ; " as part of the character's name. As a result, it sends the invite to " Character_2 ; ".

Any idea how to solve this?
 
do not have space before the ;

only the first one, that is the one that tells multiline what delimiter to use.
 
Timed info? https://www.redguides.com/docs/projects/macroquest/reference/commands/timed/

a multiline fires all the things at the same time, so when you need to stagger them, or use it like a sequential process, you use /timed (which is non cumulative)

/multiline ; /echo hi; /timed 10 /echo hi 1 second after button press; /timed 50 /echo hi 5 seconds after button press; /timed 200 /echo hi 20 seconds after button press;
 
do not have space before the ;

only the first one, that is the one that tells multiline what delimiter to use.

Same problem, I am afraid. In fact, now the initial instruction (disband) shows an error.

Here's my new adjusted code as per your suggestion:

Code:
/multiline ;
/timed 1 /disband;
/timed 2 /invite Character_2;
/timed 2 /invite Character_3;
/timed 2 /invite Character_4;
/timed 2 /invite Character_5;
/timed 2 /invite Character_6;
/timed 3 /dex Character_2 /invite;
/timed 3 /dex Character_3 /invite;
/timed 3 /dex Character_4 /invite;
/timed 3 /dex Character_5 /invite;
/timed 3 /dex Character_6 /invite

And here's the message prompted by the MQ2 chat box:

Screenshot 2024-03-28 133313.jpg
 
You can use the mq2autoaccept plugin on everyone to accept invites from any one on your team connected to dannet also...


if not going to use that then try this...

/multiline ; /invite character1; /invite character2; /invite character 3; /invite character 4; /invite character 5; /invite character 6; /timed 5 /dex character1 /invite; /timed 5 /dex character2 /invite; /timed 5 /dex character3 /invite; /timed 5 /dex character4 /invite; /timed 5 /dex character5 /invite; /timed 5 /dex character6 /invite


multiline has to be on one line
so the output u see is each character doing a single command: /timed 3 /dex Character_x /invite;

thats what its outputting "/invite;" for each character trying to do that command
 
Last edited:
You can use the mq2autoaccept plugin on everyone to accept invites from any one on your team connected to dannet also...


if not going to use that then try this...

/multiline ; /invite character1; /invite character2; /invite character 3; /invite character 4; /invite character 5; /invite character 6; /timed 5 /dex character1 /invite; /timed 5 /dex character2 /invite; /timed 5 /dex character3 /invite; /timed 5 /dex character4 /invite; /timed 5 /dex character5 /invite; /timed 5 /dex character6 /invite


multiline has to be on one line
so the output u see is each character doing a single command: /timed 3 /dex Character_x /invite;

thats what its outputting "/invite;" for each character trying to do that command

Thanks! Putting it all in one line worked :) It is funny: some of my multilines commands work fine when I split the code into multiple lines (for easier code reading), but some others, like this one, doesnt. Not sure why.

BTW, I also had to increase the /timed delay for the script to work reliably.

Here is the final code I'm using. It works as intended.

Code:
/multiline ; /timed 1 /disband; /timed 10 /invite Character_2; /timed 10 /invite Character_3; /timed 10 /invite Character_4; /timed 10 /invite Character_5; /timed 10 /invite Character_6; /timed 20 /dex Character_2 /invite; /timed 20 /dex Character_3 /invite; /timed 20 /dex Character_4 /invite; /timed 20 /dex Character_5 /invite; /timed 20 /dex Character_6 /invite
 
Thanks! Putting it all in one line worked :) It is funny: some of my multilines commands work fine when I split the code into multiple lines (for easier code reading), but some others, like this one, doesnt. Not sure why.

BTW, I also had to increase the /timed delay for the script to work reliably.

Here is the final code I'm using. It works as intended.

Code:
/multiline ; /timed 1 /disband; /timed 10 /invite Character_2; /timed 10 /invite Character_3; /timed 10 /invite Character_4; /timed 10 /invite Character_5; /timed 10 /invite Character_6; /timed 20 /dex Character_2 /invite; /timed 20 /dex Character_3 /invite; /timed 20 /dex Character_4 /invite; /timed 20 /dex Character_5 /invite; /timed 20 /dex Character_6 /invite
awesome
 
Your timed commands though are all at the same times. /timed does not pause successive commands. So a line with /timed 10 and later /timed 10 are going to try and do those commands at the same time.
 
Your timed commands though are all at the same times. /timed does not pause successive commands. So a line with /timed 10 and later /timed 10 are going to try and do those commands at the same time.

Yeah I understand. My intention is that the batch of instructions with /timed 1 is executed before the whole batch with /timed 10, which will be executed before the whole batch with /timed 20. I just want the batches to be executed in the right order.

Code:
/multiline ; /timed 1 /disband; /timed 10 /invite Character_2; /timed 10 /invite Character_3; /timed 10 /invite Character_4; /timed 10 /invite Character_5; /timed 10 /invite Character_6; /timed 20 /dex Character_2 /invite; /timed 20 /dex Character_3 /invite; /timed 20 /dex Character_4 /invite; /timed 20 /dex Character_5 /invite; /timed 20 /dex Character_6 /invite
 
oh, i thought you just had it in multiple lines to show it for ease

no, multiline has to be in one line, or else you are doing multples of things

/mutiline ; /echo 1; <-- this is now your multiline
/timed 2 /echo 2 <--- this is now an entirely new line, and has nothing to do with your multiline
 
is this in socials or macro?

if you are doing macros, or luas or lems, just do the commands, no need to multiline really

generally you want to use a /multiline in an eq social if you need the social to do more than 5 commands

another use case would be if you need to send those commands to your group

/dga /multiline ; /do1; /do2; /do3

which just makes it one send, instead of 3 sends.

but if you are writing a lem or macro, or a Lua, just do the commands

no need to multiline.
 
Code:
/multiline ;
/timed 1 /disband;
/timed 2 /invite Character_2;
/timed 2 /invite Character_3;
/timed 2 /invite Character_4;
/timed 2 /invite Character_5;
/timed 2 /invite Character_6;
/timed 3 /dex Character_2 /invite;
/timed 3 /dex Character_3 /invite;
/timed 3 /dex Character_4 /invite;
/timed 3 /dex Character_5 /invite;
/timed 3 /dex Character_6 /invite

Maybe I'm not thinking this through correctly, but to me it looks like you're trying to fire these commands along the wrong "axis" if that makes sense. The first batch of commands that all start with /timed 2, do those actually work? I would expect that at least a slight delay would be required for the client to actually send all 5 commands. I would probably do it like this:

Code:
/multiline ;
/timed 1 /disband;
/timed 2 /invite Character_2;
/timed 3 /invite Character_3;
/timed 4 /invite Character_4;
/timed 5 /invite Character_5;
/timed 6 /invite Character_6;
/timed 2 /dex Character_2 /invite;
/timed 3 /dex Character_3 /invite;
/timed 4 /dex Character_4 /invite;
/timed 5 /dex Character_5 /invite;
/timed 6 /dex Character_6 /invite

(others have already covered the need for this to be a single line, so not talking about that).

This timing sends the invites out in rapid succession, instead of trying to blast them simultaneously. Even if doing it simultaneously does work, I would expect latency issues could cause your group members to not all join the group in the same order every time (since you have them all accepting at /timed 3 also). I want my group makeup to be the same order every time, but if you don't care then staggering just slightly may not matter to you.

(I actually space mine out with intervals of 3, not 1, but YMMV)
 
This timing sends the invites out in rapid succession, instead of trying to blast them simultaneously. Even if doing it simultaneously does work, I would expect latency issues could cause your group members to not all join the group in the same order every time (since you have them all accepting at /timed 3 also). I want my group makeup to be the same order every time, but if you don't care then staggering just slightly may not matter to you.

(I actually space mine out with intervals of 3, not 1, but YMMV)

Very good insights. I will adjust my /timed commands as per your suggestion.
 
Question - Multiline interprets " ; " as part of the target's name

Users who are viewing this thread

Back
Top
Cart