Difference between revisions of "Meta Expressions"
m (→Object Properties) |
(→Examples) |
||
Line 933: | Line 933: | ||
setvar[keyName,wobjectgetname[wobjectgetselection[]]] | setvar[keyName,wobjectgetname[wobjectgetselection[]]] | ||
+ | |||
+ | '''Use closest door''' | ||
+ | |||
+ | actiontryuseitem[wobjectfindnearestdoor[]] | ||
+ | |||
+ | '''Use a Massive Mana Charge on yourself by name''' | ||
+ | |||
+ | actiontryapplyitem[wobjectfindininventorybyname[Massive Mana Charge], wobjectgetplayer[]] | ||
+ | |||
+ | '''Use a Mana Stone on yourself by template type''' | ||
+ | |||
+ | actiontryapplyitem[wobjectfindininventorybytemplatetype[9060],wobjectgetplayer[]] | ||
+ | |||
+ | '''Combine two motes''' | ||
+ | |||
+ | actiontryapplyitem[wobjectfindininventorybyname[Pyreal Mote], wobjectfindininventorybyname[Pyreal Mote]] |
Revision as of 21:40, 11 June 2015
These expressions can set and retrieve variables, control chat output, and more.
This adds the "Expression" meta condition and the "Expression Action" and "Chat Expression" meta actions.
The "/vt mexec [expression]" command is used for testing these expressions
Notes
- true is the same as 1, false is the same as 0. There are no actual booleans, just numbers.
- There are two extra operators added since monster expressions: the ^ (xor) operator, and the ; operator. The ; operator works on any two types and simply returns the value of the first one. It has the lowest possible precedence. The idea is to use it to string together commands when you don't care about the result.
- Unlike monster expressions, meta expressions do not trim spaces from the ends of strings.
- Set variables persist until cleared by a command or until relog.
- Formatting during the conversion of number to string is a string like this: http://msdn.microsoft.com/en-us/library/kfsatb94%28v=vs.110%29.aspx
- All operator characters which occur in a string must be escaped with \
- All numbers in a string must also be escaped.
Function Information
Expand to view details and available examples.
There are currently 48 meta functions.
testvar[1]
Parameter count: 1
Param 0 (String): The variable name to test
Example: testvar[variableName]getvar[1]
Parameter count: 1
Param 0 (String): The variable name to get
Example: getvar[exampleVar]setvar[2]
Parameter count: 2
Param 0 (String): The variable name to set
Example: variables can be strings or integers
setvar[exampleVar, variable]
setvar[exampleVar, 1]touchvar[1]
Parameter count: 1
Param 0 (String): The variable name to touch
Example: touchvar[exampleVar]clearallvars[]
Parameter count: 0
clearvar[1]
Parameter count: 1
Param 0 (String): The variable name to clear
Example: clearvar[exampleVar]getcharintprop[1]
Parameter count: 1
Param 0 (Number): IntValueKey property id.getchardoubleprop[1]
Parameter count: 1
Param 0 (Number): DoubleValueKey property id.getcharquadprop[1]
Parameter count: 1
Param 0 (Number): QuadValueKey property idgetcharboolprop[1]
Parameter count: 1
Param 0 (Number): BoolValueKey property idgetcharstringprop[1]
Parameter count: 1
Param 0 (Number): StringValueKey property id.getplayerlandcell[0]
Parameter count: 0
getplayercoordinates[0]
Parameter count: 0
coordinategetns[1]
Parameter count: 1
Param 0 (Coordinates): The coordinates object.coordinategetwe[1]
Parameter count: 1
Param 0 (Coordinates): The coordinates object.coordinategetz[1]
Parameter count: 1
Param 0 (Coordinates): The coordinates object.coordinatetostring[1]
Parameter count: 1
Param 0 (Coordinates): The coordinates object.coordinateparse[1]
Parameter count: 1
Param 0 (String): The coordinates string.coordinatedistancewithz[2]
Parameter count: 2
Param 0 (Coordinates): The first coordinates object.
Param 1 (Coordinates): The second coordinates object.coordinatedistanceflat[2]
Parameter count: 2
Param 0 (Coordinates): The first coordinates object.
Param 1 (Coordinates): The second coordinates object.wobjectgetphysicscoordinates[1]
Parameter count: 1
Param 0 (WorldObject): The world object to examine.wobjectgetname[1]
Parameter count: 1
Param 0 (WorldObject): The world object to examine.wobjectgetobjectclass[1]
Parameter count: 1
Param 0 (WorldObject): The world object to examine.wobjectgettemplatetype[1]
Parameter count: 1
Param 0 (WorldObject): The world object to examine.wobjectgetisdooropen[1]
Parameter count: 1
Param 0 (WorldObject): The door world object to examine.wobjectfindnearestmonster[0]
Parameter count: 0
wobjectfindnearestdoor[0]
Parameter count: 0
Example: http://www.virindi.net/junk/door.jpgwobjectfindnearestbyobjectclass[1]
Parameter count: 1
Param 0 (Number): The objectclass number to look for.wobjectfindininventorybytemplatetype[1]
Parameter count: 1
Param 0 (Number): The template type number to look for.
Example: http://www.virindi.net/junk/expr-usingtemplates.jpgwobjectfindininventorybyname[1]
Parameter count: 1
Param 0 (String): The item name to look for.wobjectfindininventorybynamerx[1]
Parameter count: 1
Param 0 (String): The item name to look for. This parameter is a regex.wobjectgetselection[0]
Parameter count: 0
wobjectgetplayer[0]
Parameter count: 0
actiontryselect[1]
Parameter count: 1
Param 0 (WorldObject): The world object to attempt to select.
Example: http://www.virindi.net/junk/select.jpgactiontryuseitem[1]
Parameter count: 1
Param 0 (WorldObject): The world object to attempt to use.actiontryapplyitem[2]
Parameter count: 2
Param 0 (WorldObject): The world object to use first.
Param 1 (WorldObject): The world object to be used on.isfalse[1]
Parameter count: 1
Param 0 (Any): The object to examineistrue[1]
Parameter count: 1
Param 0 (Any): The object to examineiif[3]
Parameter count: 3
Param 0 (Any): The object to examine
Param 1 (Any): What to return if the first parameter is true.
Param 2 (Any): What to return if the first parameter is not truerandint[2]
Parameter count: 2
Param 0 (Number): Minimum
Param 1 (Number): Maximumcstr[1]
Parameter count: 1
Param 0 (Number): The number to convertstrlen[1]
Parameter count: 1
Param 0 (String): The string to examinegetobjectinternaltype[1]
Parameter count: 1
Param 0 (Any): The object to examinecstrf[2]
Parameter count: 2
Param 0 (Number): The number to convert
Param 1 (String): The format string to use. See: http://msdn.microsoft.com/en-us/library/kfsatb94.aspxstopwatchcreate[0]
Parameter count: 0
Example: http://www.virindi.net/junk/stopwatch.jpgstopwatchstart[1]
Parameter count: 1
Param 0 (Stopwatch): The stopwatch to startstopwatchstop[1]
Parameter count: 1
Param 0 (Stopwatch): The stopwatch to stopstopwatchelapsedseconds[1]
Parameter count: 1
Param 0 (Stopwatch): The stopwatch to query
Object Properties
The following properties have been tested with /vt mexec
ObjectClass | |
Unknown | 0 |
MeleeWeapon | 1 |
Armor | 2 |
Clothing | 3 |
Jewelry | 4 |
Monster | 5 |
Food | 6 |
Money | 7 |
Misc | 8 |
MissileWeapon | 9 |
Container | 10 |
Gem | 11 |
SpellComponent | 12 |
Key | 13 |
Portal | 14 |
TradeNote | 15 |
ManaStone | 16 |
Plant | 17 |
BaseCooking | 18 |
BaseAlchemy | 19 |
BaseFletching | 20 |
CraftedCooking | 21 |
CraftedAlchemy | 22 |
CraftedFletching | 23 |
Player | 24 |
Vendor | 25 |
Door | 26 |
Corpse | 27 |
Lifestone | 28 |
HealingKit | 29 |
Lockpick | 30 |
WandStaffOrb | 31 |
Bundle | 32 |
Book | 33 |
Journal | 34 |
Sign | 35 |
Housing | 36 |
Npc | 37 |
Foci | 38 |
Salvage | 39 |
Ust | 40 |
Services | 41 |
Scroll | 42 |
CombatPet | 43 |
NumObjectClasses | 44 |
getcharintprop | |
Species | 2 |
ContainerSlots | 7 |
BurdenUnits | 5 |
TotalValue(pyreal) | 20 |
SkillCreditsAvail | 24 |
Level | 25 |
Rank | 30 |
Deaths | 43 |
DateOfBirth(unix) | 98 |
Gender | 11 |
Age(seconds) | 125 |
XPForVPReduction | 129 |
ChessRank | 181 |
Heritage | 188 |
FishingSkill | 192 |
TitlesEarned | 262 |
SocRibbonCount(CH) | 287 |
SocRibbonCount(WEB) | 288 |
SocRibbonCount(RB) | 289 |
MeleeMastery | 354 |
RangedMastery | 355 |
SummoningMastery | 362 |
Augmentations | |
Reinforcement of the Lugians | 218 |
Bleeargh's Fortitude | 219 |
Oswald's Enchantment | 220 |
Siraluun's Blessing | 221 |
Enduring Calm | 222 |
Steadfast Will | 223 |
Ciandra's Essence | 224 |
Yoshi's Essence | 225 |
Jibril's Essence | 226 |
Celdiseth's Essence | 227 |
Koga's Essence | 228 |
Shadow of the Seventh Mule | 229 |
Might of the Seventh Mule | 230 |
Clutch of the Miser | 231 |
Enduring Enchantment | 232 |
Critical Protection | 233 |
Quick Learner | 234 |
Charmed Smith | 236 |
Innate Renewal | 237 |
Archmage's Endurance | 238 |
Enhancement of the Blade Turner | 240 |
Enhancement of the Arrow Turner | 241 |
Enhancement of the Mace Turner | 242 |
Caustic Enhancement | 243 |
Fiery Enhancement | 244 |
Icy Enhancement | 245 |
Storm's Enhancement | 246 |
Infused Creature Magic | 294 |
Infused Item Magic | 295 |
Infused Life Magic | 296 |
Infused War Magic | 297 |
Eye of the Remorseless | 298 |
Hand of the Remorseless | 299 |
Master of the Steel Circle | 300 |
Master of the Focused Eye | 301 |
Master of the Five Fold Path | 302 |
Frenzy of the Slayer | 309 |
Iron Skin of the Invincible | 310 |
Jack of All Trades | 326 |
Infused Void Magic | 328 |
InfusedVoid | 328 |
Luminance/Ratings | |
AuraValor | 333 |
AuraProtection | 334 |
AuraGlory | 335 |
AuraTemperance | 336 |
AuraAetheria | 338 |
AuraManaFlow | 339 |
AuraPurity | 342 |
AuraCraftsman | 343 |
AuraSpecialization | 344 |
AuraWorld | 365 |
HealBoost Rating(armor/jewelry) | 376 |
Vitality Rating(armor/jewelry) | 379 |
Total DmgRating | 307 |
Total DmgResist | 308 |
Total CritDmg | 314 |
Total CritDmgResist | 316 |
Total DmgResist from Lum (nali + seer) | 334 |
Total CritDmgResist from Lum (nali + seer) | 336 |
getcharquadprop | |
TotalExperience | 1 |
UnassignedExperience | 2 |
LuminancePointsCurrent | 6 |
getcharstringprop | |
Name | 1 |
Title | 5 |
FellowshipName | 10 |
MonarchName | 21 |
Patron | 35 |
DateBorn | 43 |
MonarchyDescription | 47 |
Examples
Test for proximity to any portal.
coordinatedistancewithz[wobjectgetphysicscoordinates[wobjectfindnearestbyobjectclass[14]],getplayercoordinates[]]<5
Use closest portal.
actiontryuseitem[wobjectfindnearestbyobjectclass[14]]
Check if you have any Aged or Durable Legendary Keys in your inventory.
getobjectinternaltype[wobjectfindininventorybynamerx[\^\(Aged\|Durable\) Legendary Key\$]]==7
Check if there is any object currently selected.
getobjectinternaltype[wobjectgetselection[]]==7
Save the selected items name in a variable.
setvar[keyName,wobjectgetname[wobjectgetselection[]]]
Use closest door
actiontryuseitem[wobjectfindnearestdoor[]]
Use a Massive Mana Charge on yourself by name
actiontryapplyitem[wobjectfindininventorybyname[Massive Mana Charge], wobjectgetplayer[]]
Use a Mana Stone on yourself by template type
actiontryapplyitem[wobjectfindininventorybytemplatetype[9060],wobjectgetplayer[]]
Combine two motes
actiontryapplyitem[wobjectfindininventorybyname[Pyreal Mote], wobjectfindininventorybyname[Pyreal Mote]]