How to Write a Match/Pickit
History:
- 2020-03-14: Added NumberOfStats
- 2019-08-12: Added EtherealBugged and Upgraded
Notes:
- Format is [Expression] [& Expression] [& Expression] ..
- Parenthesis and OR (|) are not supported, only AND (&)
- Capitalization does not matter anywhere (BEWARE OF Demonhead vs Demon Head, best to use type code instead: usk or ne5)
- Spaces between expressions do not matter
- Spaces in values DO matter (Stone of Jordan won't work, but StoneOfJordan will)
Expression:
- Comparison / Operator types: = (or ==), != (! means NOT), <, <=, >, >=, or none
Property | Value | Examples |
---|---|---|
Type | Types / Kind and Type Hierarchy |
Type = Any Type >= TwistedEssenceOfSuffering & Type <= FesteringEssenceOfDestruction |
Kind | Kinds / Kind and Type Hierarchy |
Kind = Helm Kind = Quest |
Class | Classes |
Class = Normal Class < Elite |
Name | Uniques / Sets / Runewords | Name = Vampiregaze |
Quality | Qualities |
Quality >= Inferior & Quality <= Superior Quality >= Rare Quality = Unique |
Identified | .. | Identified !Identified |
Ebugged / EtherealBugged | .. | Ebugged !Ebugged EtherealBugged !EtherealBugged |
Upped / Upgraded | .. | Upped !Upped Upgraded !Upgraded |
UpgradedFromNormal | .. | UpgradedFromNormal !UpgradedFromNormal |
UpgradedFromExceptional | .. | UpgradedFromExceptional !UpgradedFromExceptional |
Eth / Ethereal | .. | Eth !Eth Ethereal !Ethereal |
Indestructible | .. | Indestructible !Indestructible |
Sockets | Integer | Sockets Sockets > 0 Sockets = 0 Sockets <= 2 |
UsedSockets | Integer | UsedSockets > 0 UsedSockets = 0 UsedSockets <= 2 |
Graphic / Graphics / Gfx | Graphics |
Graphic = Cross Graphics = DNA Gfx = Sloop |
Level / iLvl / Lvl | Integer | Level > 85 iLvl > 85 Lvl > 85 |
LevelReq / LevelRequirement | Integer | LevelReq > 85 LevelRequirement > 85 |
Defense | Integer | Defense > 200 |
Durability | Integer | Durability > 0 |
MaxDurability | Integer | MaxDurability > 0 |
NumStats / NumberOfStats | Integer | NumStats = 2 |
AllRes / AllResist / AllResists, AllResistances | Integer | AllRes > 10 AllResist > 10 AllResists > 10 AllResistances > 10 |
AllStat / AllStats / AllAttribs / AllAttributes | Integer | AllStat > 10 AllStats > 10 AllAttribs > 10 AllAttributes > 10 |
ClassSkillsBonus | Player Type, Level |
ClassSkillsBonus >= Sorceress, 1 ClassSkillsBonus = Paladin, 3 |
ChargedSkill SingleSkill NonClassSkill Aura |
Skill | Aura >= Meditation, 16 |
SkillOnAttack SkillOnKill SkillOnDeath SkillOnStriking SkillOnLevelUp SkillOnGetHit |
Skill, Level [, % Chance] If you include % chance, the op must be = or != |
SkillOnLevelUp >= Any, 1 SkillOnGetHit >= ChargedBolt, 4 SkillOnStriking = Volcano, 18, 5 |
SkillTabBonus | Skill Tab | SkillTabBonus = PaladinCombat, 1 |
ElementalSkillBonus | Damage Type, Level | ElementalSkillBonus = Fire, 2 |
Reanimate | NPC, % Chance | Reanimate = Returned, 10 |
Damage FireDamage / FireMinDamage LightDamage / LightMinDamage MagicDamage / MagicMinDamage |
Min [, Max] If you include Max, the op must be = or != |
FireDamage > 10 FireDamage = 232, 323 |
ColdDamage / ColdMinDamage PoisonDamage / PoisonMinDamage |
Min [, Frames] Max is implicitly equivalent to Min If you include Length, the op must be = or != Min [, Max [, Frames]] If you include , the op must be = or != Min and Max are calculated with the following formula: FLOOR([Internal Value] * [Frames] / 256) = [Visual Value] where Frames = 25 * Seconds eg. FLOOR(385 * 300 / 256) = 451 |
PoisonDamage = 385, 300 (451 damage over 12 seconds) ColdMinDamage = 1, 3, 25 (1-3 damage over 1 second) |
Basic Stats | Integer |
MaxManaPercent = 25 ColdLength = 25 LifeLeech >= 5 LifeLeech (equivalent to LifeLeech > 0) !LifeLeech (equivalent to LifeLeech = 0) |