TinTin++ Mud Client Manual
 ``` MATH Command: #math {variable} {expression} Performs math operations and stores the result in a variable. The math follows a C-like precedence, as follows, with the top of the list having the highest priority. Operators Priority Function ------------------------------------------------ ! 0 logical not ~ 0 bitwise not d 1 integer random dice * 2 integer multiply ** 2 integer power / 2 integer divide // 2 integer sqrt // 2 or cbrt // 3 % 2 integer modulo + 3 integer addition - 3 integer subtraction << 4 bitwise shift >> 4 bitwise shift .. 4 integer range > 5 logical greater than >= 5 logical greater than or equal < 5 logical less than <= 5 logical less than or equal == 6 logical equal (can use regex) === 6 logical equal (never regex) != 6 logical not equal (can use regex) !== 6 logical not equal (never regex) & 7 bitwise and ^ 8 bitwise xor | 9 bitwise or && 10 logical and ^^ 11 logical xor || 12 logical or ? 13 logical ternary if (unfinished code) : 14 logical ternary else True is any non-zero number, and False is zero. Parentheses () have highest precedence, so inside the () is always evaluated first. Strings must be enclosed in " " or { } and in the case of an == or != operation a regex is performed with the regular expression in the right-hand string. In the case of a <= or >= operation the alphabetic order is compared. The #if and #switch commands use #math. Several commands accepting numeric input allow math operations as well, such as #delay. Floating point precision is added by using the decimal . operator or using #format with the %f flag character. Example: #math {heals} {\$mana / 40} Assuming there is a variable \$mana, divides its value by 40 and stores the result in \$heals. Example: #action {^You receive %0 experience} {updatexp %0} #alias updatexp {#math {xpneed} {\$xpneed - %0} Let's say you have a variable which stores xp needed for your next level. The above will modify that variable after every kill, showing the amount still needed. Example: #action {%0 tells %1} {#if {{%0} == {Bubba} && \$afk} {reply I'm away, my friend.}} When you are away from keyboard, it will only reply to your friend. Related: cat, format, function, local, mathematics, replace, script and variable. ```