From WikiChip
Editing mirc/variables
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.
Latest revision | Your text | ||
Line 133: | Line 133: | ||
You can do one math operation with variable when setting a value. | You can do one math operation with variable when setting a value. | ||
− | The operators supported are: '+' '-' '/' '*' '%' '^' where % | + | The operators supported are: '+' '-' '/' '*' '%' '^' where % id the modulus and ^ is power. |
− | You must use a space around all | + | You must use a space around all parameters and you must provide correct values, numbers can be float. |
− | If you don't respect the format, it will set the value as plain text, use -n | + | If you don't respect the format, it will set the value as plain text, use -n to override this behavior when dynamic content. |
− | |||
− | |||
For Example: | For Example: | ||
Line 287: | Line 285: | ||
− | '''Note''': If you have multiple dynamic variable to add together, you need to add another pair of $+ [ ... ] for each element | + | '''Note''': If you have multiple dynamic variable to add together, you need to add another pair of $+ [ ... ] for each element: |
%static [ $+ [ %dynamic1 $+ [ %dynamic2 ] ] ] | %static [ $+ [ %dynamic1 $+ [ %dynamic2 ] ] ] | ||
%static [ $+ [ %dynamic1 $+ [ %dynamic2 $+ [ %dynamic3 ] ] ] ] | %static [ $+ [ %dynamic1 $+ [ %dynamic2 $+ [ %dynamic3 ] ] ] ] | ||
− | |||
etc.. | etc.. | ||
Line 315: | Line 312: | ||
Variables routines are a bit special because usually, the first argument given to a variables related command is a variable name, yet mIRC doesn't evaluate it. | Variables routines are a bit special because usually, the first argument given to a variables related command is a variable name, yet mIRC doesn't evaluate it. | ||
− | Indeed if //echo %var would display its content, it's because %var is evaluated and then passed as the parameter to the /echo command. % | + | Indeed if //echo %var would display its content, it's because %var is evaluated and then passed as the parameter to the /echo command. //var %var is obviously not doing that otherwise the content of the variable or $null would be passed to it. So mIRC, on purpose doesn't evaluate the variable name, but it will fail to do so in some case, when the arguments are dynamically passed for example: |
− | + | <syntaxhighlight lang="mirc">//set -u $+ %var %setting</syntaxhighlight>which should set %setting but won't, because it gets evaluated, you need to use % $+ setting here, /inc & /dec are most likely affected the same way. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <syntaxhighlight lang="mirc">// | ||
− | |||
− | |||
− | |||
− | / | ||
− | |||
− | |||
− | /unset suffers from an evaluation problem, | + | /unset also suffers from an evaluation problem, due to its ability to unset more than one variable on the same line, there is an issue when trying to unset a variable dynamically from a variable: |
− | <syntaxhighlight lang="mirc">//var -s %a a,%b b,%ab,%a%b | unset -s %a $+ %b</syntaxhighlight>You might expect this to evaluate %b and stick its content to plain text "%a", just like in / | + | <syntaxhighlight lang="mirc">//var -s %a a,%b b,%ab,%a%b | unset -s %a $+ %b</syntaxhighlight>You might expect this to evaluate %b and stick its content to plain text "%a", just like in //var -s %a $+ %b, but it won't, mIRC won't evaluate %b at all, thinking it's a seperate variable name you want to unset as well, unsetting the wrong %a%b instead of %ab. |
To workaround this problem, you must use evaluation brackets to force the evaluation: | To workaround this problem, you must use evaluation brackets to force the evaluation: | ||
<syntaxhighlight lang="mirc">//var -s %a a,%b b,%ab,%a%b | unset -s %a $+ [ %b ]</syntaxhighlight> | <syntaxhighlight lang="mirc">//var -s %a a,%b b,%ab,%a%b | unset -s %a $+ [ %b ]</syntaxhighlight> | ||
− | + | If most commands cannot preserve spaces, /var can preserve spaces in all situations except if you provide a single trailing space: | |
− | + | <syntaxhighlight lang="mirc">//var -s %a $+($chr(32),a,$chr(32),$chr(32),b,$chr(32),$chr(32)),%b $+($chr(32),a,$chr(32),$chr(32),b,$chr(32)) | echo -a $len(%a) $len(%b)</syntaxhighlight>which is displaying 7 5 instead of 7 6 (there is one less space at the end, which is lost because it's a single trailing space) | |
− | |||
− | |||
− | |||
− | |||
Variables are a great resource to have at your fingertips within mIRC! As you've seen, they are very powerful, and yet don't require too much of a headache to understand :) | Variables are a great resource to have at your fingertips within mIRC! As you've seen, they are very powerful, and yet don't require too much of a headache to understand :) | ||
[[Category:mIRC|variables]] | [[Category:mIRC|variables]] |