General /noparse
Reply
/noparse
Does anyone know of a way to apply /noparse to part of, instead of the entirety of, a line? Or is there some tighter control on how variables evaluate?

My goal is to iterate through the elements of an array and compare their values to those found in MacroQuest.ini in order to do updates/creation of my aliases with the /alias command.

The catch is, when done in-game, if you want to pass any unevaluated variables to the .ini, you need to /noparse the entire line. If you're not parsing the line, then you need to explicitly write out each command in full.

The long, working way looks like this (I'd like to change to the way I've pasted in the next code section):
Macro
More +

/if (!${Ini[../MacroQuest.ini,Aliases,/faceme].Length}) {
  /noparse /squelch /alias /faceme      /bca //face id ${Me.ID} fast
}


My goal is to do something like this:
Macro
More +

/if (!${Defined[i]}) /declare i int outer
/if (!${Defined[Alias]}) /declare Alias[103,3] string outer UNDEFINED-ARRAY-ELEMENT

/varset Alias[55,1] /faceme
/varset Alias[55,2] /noparse /bca //face id ${Me.ID} fast
/varset Alias[55,3] Commands the team to face this player.
 
/for i 1 to ${Math.Calc[${Alias.Size}/3]}
  /if (${Ini[../MacroQuest.ini,Aliases,${Alias[${i},1]}].Length}!=${Alias[${i},2].Length}) {
    /squelch /alias ${Alias[${i},1]} ${Alias[${i},2]}
  }
/next i
Thu Aug 21, 2014 8:18 pm
Does anyone know of a way to apply /noparse to part of, instead of the entirety of, a line? Or is there some tighter control on how variables evaluate?

Some fancy text manipulation should work.
/varset Alias[55,2] /noparse /bca //face id MEID fast
/varset Alias[55,2] ${Alias[55,2].Replace[MEID, ${Me.ID}]}

Or unfancy text manipulation.
/declare NoParseWillNotThwartMeNow string outer /noparse /bca //face id ${Me.ID} fast
/varset Alias[55,2] ${NoParseWillNotThwartMeNow}

Or an alias.
/alias /meid ${Me.ID}
/varset Alias[55,2] /bca //face id /meid fast

Or use a separate ini to go along with the macro.
/varset Alias[55,2] ${Ini[MyAlias.ini, ......]}

Or skip the Alias array and just issue /alias and commands and ${Ini[Macroquest.ini...]} checks. It looks like you are hard coding everything so skip the troublesome /varset required to initialize arrays.

Or just copy/paste the alias section of Macroquest.ini. Outside of EQ.
Fri Aug 22, 2014 6:17 pm
Senior Project Member
Thanks
Thanks for the response, grumble.

I failed to get 1-4 to work. /noparse would not work midline; using /declare <...> /noparse <...> yielded a fully parsed value.

Aliases, as far as my testing showed, could not reference another alias.

5 is pretty much the setup I currently use, and I used to do 6.

I may try to dabble with the source and see if I can't write in something to where @{object} gets parsed to become ${object}, after all normal parsing is done. That would allow exactly what I'm looking for :) I've never used C++ but I'll share what I come up with. Thanks for the assistance!
Mon Aug 25, 2014 11:33 pm
General /noparse
Reply