• 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

Plugin - MQ2Events (2 Viewers)

This event will congratulate everyone on the server for their hard-won accomplishments with 1 of 3 random replies. Please customize your replies. It also includes a timer so as not to spam if there are several accomplishments in a row.

Warning: communicating with strangers via any sort of automation has potential consequences, e.g. this can make your character extremely cool and popular, it may even result in people inviting you to their raids and in-game weddings.

congorats:
[congorats]
trigger=<SYSTEMWIDE_MESSAGE>: #1# has been defeated by a group of hardy adventurers! Please join us in congratulating #2# along with everyone#*#
command=/if (${congratz} == NULL) /multiline ; /timed 10 /if (!${Defined[congratz]}) /declare congratz timer global 990; /timed 15 /varset congratz 990; /timed 20 /if (!${Defined[randreply]}) /declare randreply int global ${Math.Rand[300]}; /timed 25 /varset randreply ${Math.Rand[300]}; /timed 90 /if (${randreply} >= 0 && ${randreply} <= 100) /tell ${EventArg2} congratz!; /timed 95 /if (${randreply} >= 101 && ${randreply} <= 200) /tell ${EventArg2} nice job!; /timed 100 /if (${randreply} >= 201 && ${randreply} <= 300) /tell ${EventArg2} thanks I hate ${EventArg1}!
 
Last edited:
Hit 2 crashes related to MQ2Events plugin on Next. Where should those be reported? Here, on the plugin specific repo, elsewhere? Any preference?

Issue 1: In LoadMyEvents function, if neither MQ2Events.ini or MQ2Events_toonname.ini doesn't already exist, it leads to memory corruption as it appears to not check whether it successfully read any data.

Compared to other plugins and the GetPrivateProfileString return value isn't being checked. I tried out the below change, to write a dummy setting value and then call the GetPrivateProfileString again, which stopped my crashes. I didn't see any list of valid settings for the plugin, but it seems to have code in place to handle a [Settings] block, so I stuck the dummy value under that for now.

Issue 1:
    if (GetPrivateProfileString(NULL, NULL, NULL, szBuffer, MAX_STRING * 10, INIFileName) == 0) { //szBuffer = Sections
        WritePrivateProfileString("Settings", "a", "b", INIFileName);
    }
    GetPrivateProfileString(NULL, NULL, NULL, szBuffer, MAX_STRING * 10, INIFileName);

Issue 2: Triggers with #*# crash due to stoi call when iterating over event args.

I have a trigger
INI:
trigger=You are no longer stunned#*#
which is causing me to crash here when it tries to call stoi with "*":

INI:
    while (pValues)
    {
        if (DEBUGGING)
            WriteChatf("MQ2Events::MyEvent(): Processing pValues, Name='%s', Value='%s'", pValues->Name, pValues->Value);
        switch (std::stoi(pValues->Name))
        {
        case 1: strcpy_s(TriggerVar1, pValues->Value.c_str()); break;
 
So....I'm wondering if it's possible to have an event trigger that does multiple things. Yes, I'm aware of multiline. What I'm really wondering is if it's possible to have a trigger that could go chase after Griklor and position/stick in front at an appropriate distance until the following "success" update is posted. Would just 'stick' suffice or both a nav and stick?
 
So....I'm wondering if it's possible to have an event trigger that does multiple things. Yes, I'm aware of multiline. What I'm really wondering is if it's possible to have a trigger that could go chase after Griklor and position/stick in front at an appropriate distance until the following "success" update is posted. Would just 'stick' suffice or both a nav and stick?
Possible Yes, Nav and Stick both required.
 
@Teichou can I send you a dump for this? Or who could I send it to?
How do I read it anyway, it is just binary.

Whenever I load mq2events, even if I have no configuration, it throws an error, and the plugin is not loaded.
 
Redbot updated MQ2Events with a new update entry:

MQ2Events - empty "trigger" crash fix

  • Should address an issue trying to load an "empty" trigger.
  • I'm not 100% on the surrounding code, I wasn't certain if this should be a continue in the for loop, or there should be just a && szTrigger[0] in the if (pEventsEvent) scope.

Read the rest of this update entry...
 
should be able to use the mq2events.ini instead of the mq2events_dudebro.ini

I personally prefer to use individual ones

i see no reason
unless its class specific to use personolized ones

like bend the knee for keal
is a universal one
ty will try that out

Kneel group:
[kneel Group]
trigger=#1#The ice encrusted Avatar of War shouts that |${Me}| must bend the knee!#2#
command=/if (!${Me.Ducking}) /multiline ; /boxr manual ; /boxr pause ; /attack off; /target clear; /keypress DUCK
 
i see no reason
unless its class specific to use personolized ones

like bend the knee for keal
is a universal one
ty will try that out

Kneel group:
[kneel Group]
trigger=#1#The ice encrusted Avatar of War shouts that |${Me}| must bend the knee!#2#
command=/if (!${Me.Ducking}) /multiline ; /boxr manual ; /boxr pause ; /attack off; /target clear; /keypress DUCK
you should get in the habit of only having a space before and after the first semi-colon after /multiline - you can and will have breaks on a few things that happen if you have extra spaces like /target id ;
 
you should get in the habit of only having a space before and after the first semi-colon after /multiline - you can and will have breaks on a few things that happen if you have extra spaces like /target id ;

yea im trying to break that habbit
slowly buy surely
 
Consider this:

For the Anashti Sul: Lady of Life Raid
In order to damage Anashti, you need to have a debuff called Holistic Health. This is a short term bane type debuff that you get by being close to Anashti. The only caveat is, if the debuff fades, you get Death-touched and spawn an honored add. The idea is to DPS Anashti with Holistic Health on, and just before it fades remove the debuff by running to the Lamplight Aura (the aura shifts locations in the room).


[Holistic Health]
trigger=#*#The power of Sul runs through you#*#
command=/multiline ; /mqp on ; /nav spawn lamplight ; /gsay ${Me.Name} moving to LAMP

So the question that is bothering me....Keeping me up at night.. how can we get the trigger to only work when the debuff is down to about 8 seconds. Until then - I want to keep DPSing.
Can we have a trigger set to a Buff timer?
 
It still seems like a silly question, but is there some way to delay the answer to a "Camp Chek" question... because answering so quickly shows that I am a BOT

Can someone be so kindly and write for me the correct line to answer a "camp check" while in game and not appears like a boot... Thanks in advance

This 2 examples NOT WORKING

[campcheck1]
trigger=#*#says out of character, 'cc#*#
command=/multiline ; /delay 100 /ooc Blasphemus

[campcheck2]
trigger=#*#says out of character, 'CC#*#
command=/multiline ; /ooc Blasphemus /pause 100
 
It still seems like a silly question, but is there some way to delay the answer to a "Camp Chek" question... because answering so quickly shows that I am a BOT

Can someone be so kindly and write for me the correct line to answer a "camp check" while in game and not appears like a boot... Thanks in advance

This 2 examples NOT WORKING

[campcheck1]
trigger=#*#says out of character, 'cc#*#
command=/multiline ; /delay 100 /ooc Blasphemus

[campcheck2]
trigger=#*#says out of character, 'CC#*#
command=/multiline ; /ooc Blasphemus /pause 100
neither pause or delay would work here.

you are probably wanting to use /timed

INI:
[campcheck2]
trigger=#*#says out of character, 'CC#*#
command=/timed 100 /ooc Blasphemus

if you're ever curious if something would work, you can echo like

/timed 100 /echo hi

things like a slash command or individual items in a multiline separated by a ; get executed at the same time. so if you want to "stagger" them or otherwise what we think of as "delay" you use /timed, it is in deciseconds, so 100 would be 10 seconds - the whole thing gets executed instantly "/timed 100 /ooc Blasphemus" which will then count down the 100 deciseconds and then do the /ooc Blasphemus part

where
/echo hi /pause 100
and
/delay 100 /echo hi

don't work like you're trying to get

Don't be a:
1624265158899.png
 
Last edited:
Consider this:

For the Anashti Sul: Lady of Life Raid
In order to damage Anashti, you need to have a debuff called Holistic Health. This is a short term bane type debuff that you get by being close to Anashti. The only caveat is, if the debuff fades, you get Death-touched and spawn an honored add. The idea is to DPS Anashti with Holistic Health on, and just before it fades remove the debuff by running to the Lamplight Aura (the aura shifts locations in the room).

So the question that is bothering me....Keeping me up at night.. how can we get the trigger to only work when the debuff is down to about 8 seconds. Until then - I want to keep DPSing.
Can we have a trigger set to a Buff timer?

That's more of a react than an event.

Check buff about to fade:
condition: "${Me.Buff[buffname].Duration} == 1"

Duration is in ticks. It may not be an accurate six seconds (i.e., you may want to check for a duration == 2). Testing will be required. As the UI reports seconds, the information may be available, but not exposed via the Buff TLO (or maybe I'm looking at an old reference doc). If the info is available, but not exposed, perhaps a feature request in Next to add DurationSec to get you a finer grain of detail on the buff.

If you want to stick with an event-driven approach, you'll need to add /timed to your actions. Assuming the buff lasts 60 seconds:

Event delayed command:
[Holistic Health]
trigger=#*#The power of Sul runs through you#*#
command=/multiline ; /timed 520 /mqp on; /timed 520 /nav spawn lamplight; /timed 520 /gsay ${Me.Name} moving to LAMP
 
running mq2events on TOV and COV raid events and my background characters will just stop for no good reason part way to their goal and just stand there or not respond at all.

Example of what I am running below:

INI:
[GriklorChase]
trigger=#*#Griklor the Restless roars and points at#1#.
command=/if (${Spawn[=${EventArg1}].ID}==${Me.ID}) /multiline ; /gsay Off to get Griklor; /docommand /${Me.Class.ShortName} pause on; /nav id ${Spawn[Griklor].ID}; /timed 26 /stick id ${Spawn[Griklor].ID} 1; /timed 100 /stick off

[GriklorReturn]
trigger=#*#Griklor the Restless tries to control his mount as shards of deadly ice strike it.#*#
command=/if (${Spawn[=${EventArg1}].ID}==${Me.ID}) /multiline ; /docommand /${Me.Class.ShortName} pause off; /nav id ${Group.MainAssist.ID}
 
running mq2events on TOV and COV raid events and my background characters will just stop for no good reason part way to their goal and just stand there or not respond at all.

Example of what I am running below:

INI:
[GriklorChase]
trigger=#*#Griklor the Restless roars and points at#1#.
command=/if (${Spawn[=${EventArg1}].ID}==${Me.ID}) /multiline ; /gsay Off to get Griklor; /docommand /${Me.Class.ShortName} pause on; /nav id ${Spawn[Griklor].ID}; /timed 26 /stick id ${Spawn[Griklor].ID} 1; /timed 100 /stick off

[GriklorReturn]
trigger=#*#Griklor the Restless tries to control his mount as shards of deadly ice strike it.#*#
command=/if (${Spawn[=${EventArg1}].ID}==${Me.ID}) /multiline ; /docommand /${Me.Class.ShortName} pause off; /nav id ${Group.MainAssist.ID}
considering you have other recent posts about your background toons not doing what you expect them to do under non-griklor fights, i don't think this is an mq2events issue - unless you have an un-posted event that is pausing them during times you don't want them paused.
 
considering you have other recent posts about your background toons not doing what you expect them to do under non-griklor fights, i don't think this is an mq2events issue - unless you have an un-posted event that is pausing them during times you don't want them paused.

Thats the problem, i have no idea what it is. I fixed the fps issue, background toons were running at the right fps (i think its 60-90fps now with EQwire) but they still doing stupid shit like not constantly nuking unless they're the active screen.

Anyway I can tell which background apps would be interfering?
 
Thats the problem, i have no idea what it is. I fixed the fps issue, background toons were running at the right fps (i think its 60-90fps now with EQwire) but they still doing stupid shit like not constantly nuking unless they're the active screen.

Anyway I can tell which background apps would be interfering?
well,

unless your toon is executing "
/multiline ; /gsay Off to get Griklor; /docommand /${Me.Class.ShortName} pause on; /nav id ${Spawn[Griklor].ID}; /timed 26 /stick id ${Spawn[Griklor].ID} 1; /timed 100 /stick off
" when it shouldn't be executing it, there's no reason to believe that is your problem
 
well,

unless your toon is executing "
/multiline ; /gsay Off to get Griklor; /docommand /${Me.Class.ShortName} pause on; /nav id ${Spawn[Griklor].ID}; /timed 26 /stick id ${Spawn[Griklor].ID} 1; /timed 100 /stick off
" there's no reason to believe that is your problem

Its not executing it... it starts then stops and sits there doing nothing. I am always having problems with mq2nav on my toons. They like to stop for no reason numerous times bedfore they get to where they are going. I have never been able to use /chaseon for this very reason.
 
Its not executing it... it starts then stops and sits there doing nothing. I am always having problems with mq2nav on my toons. They like to stop for no reason numerous times bedfore they get to where they are going. I have never been able to use /chaseon for this very reason.
exactly why i don't think this is an mq2events issue - exactly my point - it isn't executing it, so its not it =p

it really sounds like a setup issue. like you didn't set your eqclient.ini to =-1 for all entries of CPUAFFINITY and your computer is strangling resources from certain instances of eq

there's nothing really to indicate it is in any way related to mq2events

<This post> might be helpful or checking out optimize.mac
 
exactly why i don't think this is an mq2events issue - exactly my point - it isn't executing it, so its not it =p

it really sounds like a setup issue. like you didn't set your eqclient.ini to =-1 for all entries of CPUAFFINITY and your computer is strangling resources from certain instances of eq

there's nothing really to indicate it is in any way related to mq2events

<This post> might be helpful or checking out optimize.mac
I have CPUAFFINITY0 thru CPUAFFINTY32 on my eqclient.ini. Which one is it?

INI:
CPUAffinity0=0
CPUAffinity1=1
CPUAffinity2=2
CPUAffinity3=3
CPUAffinity4=4
CPUAffinity5=5
CPUAffinity6=6
CPUAffinity7=7
CPUAffinity8=8
CPUAffinity9=9
CPUAffinity10=10
CPUAffinity11=11
CPUAffinity12=0
CPUAffinity13=1
CPUAffinity14=2
CPUAffinity15=3
CPUAffinity16=4
CPUAffinity17=5
CPUAffinity18=6
CPUAffinity19=7
CPUAffinity20=8
CPUAffinity21=9
CPUAffinity22=10
CPUAffinity23=11
CPUAffinity24=0
CPUAffinity25=1
CPUAffinity26=2
CPUAffinity27=3
CPUAffinity28=4
CPUAffinity29=5
CPUAffinity30=6
CPUAffinity31=7
 
I have CPUAFFINITY0 thru CPUAFFINTY32 on my eqclient.ini. Which one is it?

INI:
CPUAffinity0=0
CPUAffinity1=1
CPUAffinity2=2
CPUAffinity3=3
CPUAffinity4=4
CPUAffinity5=5
CPUAffinity6=6
CPUAffinity7=7
CPUAffinity8=8
CPUAffinity9=9
CPUAffinity10=10
CPUAffinity11=11
CPUAffinity12=0
CPUAffinity13=1
CPUAffinity14=2
CPUAffinity15=3
CPUAffinity16=4
CPUAffinity17=5
CPUAffinity18=6
CPUAffinity19=7
CPUAffinity20=8
CPUAffinity21=9
CPUAffinity22=10
CPUAffinity23=11
CPUAffinity24=0
CPUAffinity25=1
CPUAffinity26=2
CPUAffinity27=3
CPUAffinity28=4
CPUAffinity29=5
CPUAffinity30=6
CPUAffinity31=7
you want every single one of them to =-1
 
Is this forcing all EQ clients to never change CPU?
that is not locking eq to any specific core and allowing windows and mq2eqwire (which i saw you have) manage your cores. locking instances of toons to a core has a possible effect of that core, and thusly, that toon, not getting the resources it needs to do its job
 
that is not locking eq to any specific core and allowing windows and mq2eqwire (which i saw you have) manage your cores. locking instances of toons to a core has a possible effect of that core, and thusly, that toon, not getting the resources it needs to do its job
When I change the setting is there anything specific I need to do? like relog or update something?
 
trying to work an event for KD2 Raid and i was sent this:

INI:
[kneel]
trigger=#1#The ice encrusted Avatar of War shouts that |${Me}| must bend the knee!#2#
command=/if (!${Me.Ducking}) /multiline ; /mqp on; /stopcast; /target clear; /keypress DUCK; /gsay I am ducking!

which looks strangely like the KD HA text as teh raid looks like this

The ice-encrusted Avatar of War shouts that each of these must bend the knee: Toon1, Toon2, and Toon3.

My question is this right? how do i fix it if it's not? It's what i was sent from the creator of the first bit of code.

INI:
[kneel2]
trigger=#1#The ice-encrusted Avatar of War shouts that each of these must bend the knee: |${Me.ID}|, |${Me.ID}|, and |{Me.ID}|#2#
command=/if (!${Me.Ducking}) /multiline ; /mqp on; /stopcast; /target clear; /keypress DUCK; /gsay I am ducking sexy!
 
trying to work an event for KD2 Raid and i was sent this:

INI:
[kneel]
trigger=#1#The ice encrusted Avatar of War shouts that |${Me}| must bend the knee!#2#
command=/if (!${Me.Ducking}) /multiline ; /mqp on; /stopcast; /target clear; /keypress DUCK; /gsay I am ducking!

which looks strangely like the KD HA text as teh raid looks like this



My question is this right? how do i fix it if it's not? It's what i was sent from the creator of the first bit of code.

INI:
[kneel2]
trigger=#1#The ice-encrusted Avatar of War shouts that each of these must bend the knee: |${Me.ID}|, |${Me.ID}|, and |{Me.ID}|#2#
command=/if (!${Me.Ducking}) /multiline ; /mqp on; /stopcast; /target clear; /keypress DUCK; /gsay I am ducking sexy!
here is one

[kaelraidduck]
trigger="#*#The ice-encrusted Avatar of War shouts that each of these must bend the knee: #1#, #2#, and #3#.#*#"
command=/if ((${Me.CleanName.Equal[${EventArg1}]}) || (${Me.CleanName.Equal[${EventArg2}]}) || (${Me.CleanName.Equal[${EventArg3}]}) && (!${Me.Ducking})) /multiline ; /gsay Ducking! ; /mqp on ; /attack off ; /twist clear ; /keypress duck
 
Having some troubles with an event of mine for camp checks


[campcheck]
trigger=#*#says out of character, 'cc#*#
command=/if (${Zone.ID}==834) /timed ${Math.Calc[${Math.Rand[200]}+150]} /ooc Feltinth

This is the event I have in file but since the most recent patch with RG has not functioned have tried to mess with it to no avail. Is anybody else experiencing this issue and know a fix to it? I have not changed this trigger/command line since I created it and has worked up till this point.
 
Having some troubles with an event of mine for camp checks


[campcheck]
trigger=#*#says out of character, 'cc#*#
command=/if (${Zone.ID}==834) /timed ${Math.Calc[${Math.Rand[200]}+150]} /ooc Feltinth

This is the event I have in file but since the most recent patch with RG has not functioned have tried to mess with it to no avail. Is anybody else experiencing this issue and know a fix to it? I have not changed this trigger/command line since I created it and has worked up till this point.
i think you need to /if (${Zone.ID}==834) /docommand /timed ${Math.Calc[${Math.Rand[200]}+150]} /ooc Feltinth with the docommand
 
Plugin - MQ2Events

Users who are viewing this thread

Back
Top