Advertisement
Guest User

AutoCategory_RuleFunc

a guest
Mar 16th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 45.51 KB | None | 0 0
  1. local specializedItemTypeMap = {
  2.     ["additive"] = SPECIALIZED_ITEMTYPE_ADDITIVE,
  3.     ["armor"] = SPECIALIZED_ITEMTYPE_ARMOR,
  4.     ["armor_booster"] = SPECIALIZED_ITEMTYPE_ARMOR_BOOSTER,
  5.     ["armor_trait"] = SPECIALIZED_ITEMTYPE_ARMOR_TRAIT,
  6.     ["ava_repair"] = SPECIALIZED_ITEMTYPE_AVA_REPAIR,
  7.     ["blacksmithing_booster"] = SPECIALIZED_ITEMTYPE_BLACKSMITHING_BOOSTER,
  8.     ["blacksmithing_material"] = SPECIALIZED_ITEMTYPE_BLACKSMITHING_MATERIAL,
  9.     ["blacksmithing_raw_material"] = SPECIALIZED_ITEMTYPE_BLACKSMITHING_RAW_MATERIAL,
  10.     ["clothier_booster"] = SPECIALIZED_ITEMTYPE_CLOTHIER_BOOSTER,
  11.     ["clothier_material"] = SPECIALIZED_ITEMTYPE_CLOTHIER_MATERIAL,
  12.     ["clothier_raw_material"] = SPECIALIZED_ITEMTYPE_CLOTHIER_RAW_MATERIAL,
  13.     ["collectible_monster_trophy"] = SPECIALIZED_ITEMTYPE_COLLECTIBLE_MONSTER_TROPHY,
  14.     ["collectible_rare_fish"] = SPECIALIZED_ITEMTYPE_COLLECTIBLE_RARE_FISH,
  15.     ["container"] = SPECIALIZED_ITEMTYPE_CONTAINER,
  16.     ["container_event"] = SPECIALIZED_ITEMTYPE_CONTAINER_EVENT,
  17.     ["costume"] = SPECIALIZED_ITEMTYPE_COSTUME,
  18.     ["crown_item"] = SPECIALIZED_ITEMTYPE_CROWN_ITEM,
  19.     ["crown_repair"] = SPECIALIZED_ITEMTYPE_CROWN_REPAIR,
  20.     ["repair"] = SPECIALIZED_ITEMTYPE_TOOL,
  21.     ["lockpick"] = SPECIALIZED_ITEMTYPE_TOOL,
  22.     ["disguise"] = SPECIALIZED_ITEMTYPE_DISGUISE,
  23.     ["drink_alcoholic"] = SPECIALIZED_ITEMTYPE_DRINK_ALCOHOLIC,
  24.     ["drink_cordial_tea"] = SPECIALIZED_ITEMTYPE_DRINK_CORDIAL_TEA,
  25.     ["drink_distillate"] = SPECIALIZED_ITEMTYPE_DRINK_DISTILLATE,
  26.     ["drink_liqueur"] = SPECIALIZED_ITEMTYPE_DRINK_LIQUEUR,
  27.     ["drink_tea"] = SPECIALIZED_ITEMTYPE_DRINK_TEA,
  28.     ["drink_tincture"] = SPECIALIZED_ITEMTYPE_DRINK_TINCTURE,
  29.     ["drink_tonic"] = SPECIALIZED_ITEMTYPE_DRINK_TONIC,
  30.     ["drink_unique"] = SPECIALIZED_ITEMTYPE_DRINK_UNIQUE,
  31.     ["dye_stamp"] = SPECIALIZED_ITEMTYPE_DYE_STAMP,
  32.     ["enchanting_rune_aspect"] = SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_ASPECT,
  33.     ["enchanting_rune_essence"] = SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_ESSENCE,
  34.     ["enchanting_rune_potency"] = SPECIALIZED_ITEMTYPE_ENCHANTING_RUNE_POTENCY,
  35.     ["enchantment_booster"] = SPECIALIZED_ITEMTYPE_ENCHANTMENT_BOOSTER,
  36.     ["fish"] = SPECIALIZED_ITEMTYPE_FISH,
  37.     ["flavoring"] = SPECIALIZED_ITEMTYPE_FLAVORING,
  38.     ["food_entremet"] = SPECIALIZED_ITEMTYPE_FOOD_ENTREMET,
  39.     ["food_fruit"] = SPECIALIZED_ITEMTYPE_FOOD_FRUIT,
  40.     ["food_gourmet"] = SPECIALIZED_ITEMTYPE_FOOD_GOURMET,
  41.     ["food_meat"] = SPECIALIZED_ITEMTYPE_FOOD_MEAT,
  42.     ["food_ragout"] = SPECIALIZED_ITEMTYPE_FOOD_RAGOUT,
  43.     ["food_savoury"] = SPECIALIZED_ITEMTYPE_FOOD_SAVOURY,
  44.     ["food_unique"] = SPECIALIZED_ITEMTYPE_FOOD_UNIQUE,
  45.     ["food_vegetable"] = SPECIALIZED_ITEMTYPE_FOOD_VEGETABLE,
  46.     ["furnishing_crafting_station"] = SPECIALIZED_ITEMTYPE_FURNISHING_CRAFTING_STATION,
  47.     ["furnishing_light"] = SPECIALIZED_ITEMTYPE_FURNISHING_LIGHT,
  48.     ["furnishing_material_alchemy"] = SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_ALCHEMY,
  49.     ["furnishing_material_blacksmithing"] = SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_BLACKSMITHING,
  50.     ["furnishing_material_clothier"] = SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_CLOTHIER,
  51.     ["furnishing_material_enchanting"] = SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_ENCHANTING,
  52.     ["furnishing_material_provisioning"] = SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_PROVISIONING,
  53.     ["furnishing_material_woodworking"] = SPECIALIZED_ITEMTYPE_FURNISHING_MATERIAL_WOODWORKING,
  54.     ["furnishing_ornamental"] = SPECIALIZED_ITEMTYPE_FURNISHING_ORNAMENTAL,
  55.     ["furnishing_seating"] = SPECIALIZED_ITEMTYPE_FURNISHING_SEATING,
  56.     ["furnishing_target_dummy"] = SPECIALIZED_ITEMTYPE_FURNISHING_TARGET_DUMMY,
  57.     ["glyph_armor"] = SPECIALIZED_ITEMTYPE_GLYPH_ARMOR,
  58.     ["glyph_jewelry"] = SPECIALIZED_ITEMTYPE_GLYPH_JEWELRY,
  59.     ["glyph_weapon"] = SPECIALIZED_ITEMTYPE_GLYPH_WEAPON,
  60.     ["glyph"] = { [SPECIALIZED_ITEMTYPE_GLYPH_ARMOR] = true, [SPECIALIZED_ITEMTYPE_GLYPH_JEWELRY] = true, [SPECIALIZED_ITEMTYPE_GLYPH_WEAPON] = true },
  61.     ["ingredient_alcohol"] = SPECIALIZED_ITEMTYPE_INGREDIENT_ALCOHOL,
  62.     ["ingredient_drink_additive"] = SPECIALIZED_ITEMTYPE_INGREDIENT_DRINK_ADDITIVE,
  63.     ["ingredient_food_additive"] = SPECIALIZED_ITEMTYPE_INGREDIENT_FOOD_ADDITIVE,
  64.     ["ingredient_fruit"] = SPECIALIZED_ITEMTYPE_INGREDIENT_FRUIT,
  65.     ["ingredient_meat"] = SPECIALIZED_ITEMTYPE_INGREDIENT_MEAT,
  66.     ["ingredient_rare"] = SPECIALIZED_ITEMTYPE_INGREDIENT_RARE,
  67.     ["ingredient_tea"] = SPECIALIZED_ITEMTYPE_INGREDIENT_TEA,
  68.     ["ingredient_tonic"] = SPECIALIZED_ITEMTYPE_INGREDIENT_TONIC,
  69.     ["ingredient_vegetable"] = SPECIALIZED_ITEMTYPE_INGREDIENT_VEGETABLE,
  70.     ["jewelry_booster"] = SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING_BOOSTER,
  71.     ["jewelry_material"] = SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING_MATERIAL,
  72.     ["jewelry_raw_booster"] = SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING_RAW_BOOSTER,
  73.     ["jewelry_raw_material"] = SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING_RAW_MATERIAL,
  74.     ["jewelry_raw_trait"] = SPECIALIZED_ITEMTYPE_JEWELRY_RAW_TRAIT,
  75.     ["jewelry_trait"] = SPECIALIZED_ITEMTYPE_JEWELRY_TRAIT,
  76.     ["jewelry"] = SPECIALIZED_ITEMTYPE_JEWELRYCRAFTING,
  77.     ["lockpick_2"] = SPECIALIZED_ITEMTYPE_LOCKPICK,
  78.     ["lure"] = SPECIALIZED_ITEMTYPE_LURE,
  79.     ["master_writ"] = SPECIALIZED_ITEMTYPE_MASTER_WRIT,
  80.     ["holiday_writ"] = SPECIALIZED_ITEMTYPE_HOLIDAY_WRIT,
  81.     ["mount"] = SPECIALIZED_ITEMTYPE_MOUNT,
  82.     ["none"] = SPECIALIZED_ITEMTYPE_NONE,
  83.     ["plug"] = SPECIALIZED_ITEMTYPE_PLUG,
  84.     ["poison"] = SPECIALIZED_ITEMTYPE_POISON,
  85.     ["poison_base"] = SPECIALIZED_ITEMTYPE_POISON_BASE,
  86.     ["potion"] = SPECIALIZED_ITEMTYPE_POTION,
  87.     ["potion_base"] = SPECIALIZED_ITEMTYPE_POTION_BASE,
  88.     ["racial_style_motif_book"] = SPECIALIZED_ITEMTYPE_RACIAL_STYLE_MOTIF_BOOK,
  89.     ["racial_style_motif_chapter"] = SPECIALIZED_ITEMTYPE_RACIAL_STYLE_MOTIF_CHAPTER,
  90.     ["raw_material"] = SPECIALIZED_ITEMTYPE_RAW_MATERIAL,
  91.     ["reagent_animal_part"] = SPECIALIZED_ITEMTYPE_REAGENT_ANIMAL_PART,
  92.     ["reagent_fungus"] = SPECIALIZED_ITEMTYPE_REAGENT_FUNGUS,
  93.     ["reagent_herb"] = SPECIALIZED_ITEMTYPE_REAGENT_HERB,
  94.     ["keep_recall"] = SPECIALIZED_ITEMTYPE_RECALL_STONE_KEEP,
  95.     ["recipe_alchemy_formula_furnishing"] = SPECIALIZED_ITEMTYPE_RECIPE_ALCHEMY_FORMULA_FURNISHING,
  96.     ["recipe_blacksmithing_diagram_furnishing"] = SPECIALIZED_ITEMTYPE_RECIPE_BLACKSMITHING_DIAGRAM_FURNISHING,
  97.     ["recipe_clothier_pattern_furnishing"] = SPECIALIZED_ITEMTYPE_RECIPE_CLOTHIER_PATTERN_FURNISHING,
  98.     ["recipe_enchanting_schematic_furnishing"] = SPECIALIZED_ITEMTYPE_RECIPE_ENCHANTING_SCHEMATIC_FURNISHING,
  99.     ["recipe_provisioning_design_furnishing"] = SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_DESIGN_FURNISHING,
  100.     ["recipe_provisioning_standard_drink"] = SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_STANDARD_DRINK,
  101.     ["recipe_provisioning_standard_food"] = SPECIALIZED_ITEMTYPE_RECIPE_PROVISIONING_STANDARD_FOOD,
  102.     ["recipe_woodworking_blueprint_furnishing"] = SPECIALIZED_ITEMTYPE_RECIPE_WOODWORKING_BLUEPRINT_FURNISHING,
  103.     ["siege_ballista"] = SPECIALIZED_ITEMTYPE_SIEGE_BALLISTA,
  104.     ["siege_battle_standard"] = SPECIALIZED_ITEMTYPE_SIEGE_BATTLE_STANDARD,
  105.     ["siege_catapult"] = SPECIALIZED_ITEMTYPE_SIEGE_CATAPULT,
  106.     ["siege_graveyard"] = SPECIALIZED_ITEMTYPE_SIEGE_GRAVEYARD,
  107.     ["siege_monster"] = SPECIALIZED_ITEMTYPE_SIEGE_MONSTER,
  108.     ["siege_oil"] = SPECIALIZED_ITEMTYPE_SIEGE_OIL,
  109.     ["siege_ram"] = SPECIALIZED_ITEMTYPE_SIEGE_RAM,
  110.     ["siege_trebuchet"] = SPECIALIZED_ITEMTYPE_SIEGE_TREBUCHET,
  111.     ["siege_universal"] = SPECIALIZED_ITEMTYPE_SIEGE_UNIVERSAL,
  112.     ["soul_gem"] = SPECIALIZED_ITEMTYPE_SOUL_GEM,
  113.     ["spellcrafting_tablet"] = SPECIALIZED_ITEMTYPE_SPELLCRAFTING_TABLET,
  114.     ["spice"] = SPECIALIZED_ITEMTYPE_SPICE,
  115.     ["style_material"] = SPECIALIZED_ITEMTYPE_STYLE_MATERIAL,
  116.     ["tabard"] = SPECIALIZED_ITEMTYPE_TABARD,
  117.     ["tool"] = SPECIALIZED_ITEMTYPE_TOOL,
  118.     ["trash"] = SPECIALIZED_ITEMTYPE_TRASH,
  119.     ["treasure"] = SPECIALIZED_ITEMTYPE_TREASURE,
  120.     ["trophy_key"] = SPECIALIZED_ITEMTYPE_TROPHY_KEY,
  121.     ["trophy_key_fragment"] = SPECIALIZED_ITEMTYPE_TROPHY_KEY_FRAGMENT,
  122.     ["trophy_material_upgrader"] = SPECIALIZED_ITEMTYPE_TROPHY_MATERIAL_UPGRADER,
  123.     ["trophy_upgrade_fragment"] = SPECIALIZED_ITEMTYPE_TROPHY_UPGRADE_FRAGMENT,
  124.     ["trophy_museum_piece"] = SPECIALIZED_ITEMTYPE_TROPHY_MUSEUM_PIECE,
  125.     ["trophy_recipe_fragment"] = SPECIALIZED_ITEMTYPE_TROPHY_RECIPE_FRAGMENT,
  126.     ["trophy_runebox_fragment"] = SPECIALIZED_ITEMTYPE_TROPHY_RUNEBOX_FRAGMENT,
  127.     ["trophy_scroll"] = SPECIALIZED_ITEMTYPE_TROPHY_SCROLL,
  128.     ["trophy_survey_report"] = SPECIALIZED_ITEMTYPE_TROPHY_SURVEY_REPORT,
  129.     ["trophy_treasure_map"] = SPECIALIZED_ITEMTYPE_TROPHY_TREASURE_MAP,
  130.     ["trophy_collectible_fragment"] = SPECIALIZED_ITEMTYPE_TROPHY_COLLECTIBLE_FRAGMENT,
  131.     ["trophy_toy"] = SPECIALIZED_ITEMTYPE_TROPHY_TOY,  
  132.     ["weapon"] = SPECIALIZED_ITEMTYPE_WEAPON,
  133.     ["weapon_booster"] = SPECIALIZED_ITEMTYPE_WEAPON_BOOSTER,
  134.     ["weapon_trait"] = SPECIALIZED_ITEMTYPE_WEAPON_TRAIT,
  135.     ["woodworking_booster"] = SPECIALIZED_ITEMTYPE_WOODWORKING_BOOSTER,
  136.     ["woodworking_material"] = SPECIALIZED_ITEMTYPE_WOODWORKING_MATERIAL,
  137.     ["woodworking_raw_material"] = SPECIALIZED_ITEMTYPE_WOODWORKING_RAW_MATERIAL,
  138. }
  139.  
  140. local itemTypeMap = {
  141.     ["additive"] = ITEMTYPE_ADDITIVE,
  142.     ["armor"] = ITEMTYPE_ARMOR,
  143.     ["armor_booster"] = ITEMTYPE_ARMOR_BOOSTER,
  144.     ["armor_trait"] = ITEMTYPE_ARMOR_TRAIT,
  145.     ["ava_repair"] = ITEMTYPE_AVA_REPAIR,
  146.     ["blacksmithing_booster"] = ITEMTYPE_BLACKSMITHING_BOOSTER,
  147.     ["blacksmithing_material"] = ITEMTYPE_BLACKSMITHING_MATERIAL,
  148.     ["blacksmithing_raw_material"] = ITEMTYPE_BLACKSMITHING_RAW_MATERIAL,
  149.     ["clothier_booster"] = ITEMTYPE_CLOTHIER_BOOSTER,
  150.     ["clothier_material"] = ITEMTYPE_CLOTHIER_MATERIAL,
  151.     ["clothier_raw_material"] = ITEMTYPE_CLOTHIER_RAW_MATERIAL,
  152.     ["collectible"] = ITEMTYPE_COLLECTIBLE,
  153.     ["container"] = ITEMTYPE_CONTAINER,
  154.     ["costume"] = ITEMTYPE_COSTUME,
  155.     ["crown_item"] = ITEMTYPE_CROWN_ITEM,
  156.     ["crown_repair"] = ITEMTYPE_CROWN_REPAIR,
  157.     ["repair"] = ITEMTYPE_TOOL,
  158.     ["lockpick"] = ITEMTYPE_TOOL,
  159.     ["deprecated"] = ITEMTYPE_DEPRECATED,
  160.     ["disguise"] = ITEMTYPE_DISGUISE,
  161.     ["drink"] = ITEMTYPE_DRINK,
  162.     ["dye_stamp"] = ITEMTYPE_DYE_STAMP,
  163.     ["enchanting_rune_aspect"] = ITEMTYPE_ENCHANTING_RUNE_ASPECT,
  164.     ["enchanting_rune_essence"] = ITEMTYPE_ENCHANTING_RUNE_ESSENCE,
  165.     ["enchanting_rune_potency"] = ITEMTYPE_ENCHANTING_RUNE_POTENCY,
  166.     ["enchantment_booster"] = ITEMTYPE_ENCHANTMENT_BOOSTER,
  167.     ["fish"] = ITEMTYPE_FISH,
  168.     ["flavoring"] = ITEMTYPE_FLAVORING,
  169.     ["food"] = ITEMTYPE_FOOD,
  170.     ["furnishing"] = ITEMTYPE_FURNISHING,
  171.     ["furnishing_material"] = ITEMTYPE_FURNISHING_MATERIAL,
  172.     ["glyph"] = {[ITEMTYPE_GLYPH_ARMOR] = true, [ITEMTYPE_GLYPH_JEWELRY] = true, [ITEMTYPE_GLYPH_WEAPON] = true},
  173.     ["glyph_armor"] = ITEMTYPE_GLYPH_ARMOR,
  174.     ["glyph_jewelry"] = ITEMTYPE_GLYPH_JEWELRY,
  175.     ["glyph_weapon"] = ITEMTYPE_GLYPH_WEAPON,
  176.     ["ingredient"] = ITEMTYPE_INGREDIENT,
  177.     ["jewelry"] = ITEMTYPE_JEWELRYCRAFTING,
  178.     ["lockpick_2"] = ITEMTYPE_LOCKPICK,
  179.     ["lure"] = ITEMTYPE_LURE,
  180.     ["master_writ"] = ITEMTYPE_MASTER_WRIT,
  181.     ["mount"] = ITEMTYPE_MOUNT,
  182.     ["none"] = ITEMTYPE_NONE,
  183.     ["plug"] = ITEMTYPE_PLUG,
  184.     ["poison"] = ITEMTYPE_POISON,
  185.     ["poison_base"] = ITEMTYPE_POISON_BASE,
  186.     ["potion"] = ITEMTYPE_POTION,
  187.     ["potion_base"] = ITEMTYPE_POTION_BASE,
  188.     ["racial_style_motif"] = ITEMTYPE_RACIAL_STYLE_MOTIF,
  189.     ["raw_material"] = ITEMTYPE_RAW_MATERIAL,
  190.     ["reagent"] = ITEMTYPE_REAGENT,
  191.     ["recipe"] = ITEMTYPE_RECIPE,
  192.     ["siege"] = ITEMTYPE_SIEGE,
  193.     ["soul_gem"] = ITEMTYPE_SOUL_GEM,
  194.     ["spellcrafting_tablet"] = ITEMTYPE_SPELLCRAFTING_TABLET,
  195.     ["spice"] = ITEMTYPE_SPICE,
  196.     ["style_material"] = ITEMTYPE_STYLE_MATERIAL,
  197.     ["tabard"] = ITEMTYPE_TABARD,
  198.     ["tool"] = ITEMTYPE_TOOL,
  199.     ["trash"] = ITEMTYPE_TRASH,
  200.     ["treasure"] = ITEMTYPE_TREASURE,
  201.     ["trophy"] = ITEMTYPE_TROPHY,
  202.     ["weapon"] = ITEMTYPE_WEAPON,
  203.     ["weapon_booster"] = ITEMTYPE_WEAPON_BOOSTER,
  204.     ["weapon_trait"] = ITEMTYPE_WEAPON_TRAIT,
  205.     ["woodworking_booster"] = ITEMTYPE_WOODWORKING_BOOSTER,
  206.     ["woodworking_material"] = ITEMTYPE_WOODWORKING_MATERIAL,
  207.     ["woodworking_raw_material"] = ITEMTYPE_WOODWORKING_RAW_MATERIAL,
  208. }
  209.  
  210. local filterTypeMap = {
  211.     ["alchemy"] = ITEMFILTERTYPE_ALCHEMY,
  212.     ["all"] = ITEMFILTERTYPE_ALL,
  213.     ["armor"] = ITEMFILTERTYPE_ARMOR,
  214.     ["blacksmithing"] = ITEMFILTERTYPE_BLACKSMITHING,
  215.     ["buyback"] = ITEMFILTERTYPE_BUYBACK,
  216.     ["clothing"] = ITEMFILTERTYPE_CLOTHING,
  217.     ["collectible"] = ITEMFILTERTYPE_COLLECTIBLE,
  218.     ["consumable"] = ITEMFILTERTYPE_CONSUMABLE,
  219.     ["crafting"] = ITEMFILTERTYPE_CRAFTING,
  220.     ["damaged"] = ITEMFILTERTYPE_DAMAGED,
  221.     ["enchanting"] = ITEMFILTERTYPE_ENCHANTING,
  222.     ["furnishing"] = ITEMFILTERTYPE_FURNISHING,
  223.     ["house_with_template"] = ITEMFILTERTYPE_HOUSE_WITH_TEMPLATE,
  224.     ["junk"] = ITEMFILTERTYPE_JUNK,
  225.     ["jewelry"] = ITEMFILTERTYPE_JEWELRYCRAFTING,
  226.     ["miscellaneous"] = ITEMFILTERTYPE_MISCELLANEOUS,
  227.     ["provisioning"] = ITEMFILTERTYPE_PROVISIONING,
  228.     ["quest"] = ITEMFILTERTYPE_QUEST,
  229.     ["quickslot"] = ITEMFILTERTYPE_QUICKSLOT,
  230.     ["reuse"] = ITEMFILTERTYPE_REUSE,
  231.     ["style_materials"] = ITEMFILTERTYPE_STYLE_MATERIALS,
  232.     ["trait_items"] = ITEMFILTERTYPE_TRAIT_ITEMS,
  233.     ["weapons"] = ITEMFILTERTYPE_WEAPONS,
  234.     ["woodworking"] = ITEMFILTERTYPE_WOODWORKING,
  235. }
  236.  
  237. local equipTypeMap = {
  238.     ["chest"] = EQUIP_TYPE_CHEST,
  239.     ["costume"] = EQUIP_TYPE_COSTUME,
  240.     ["feet"] = EQUIP_TYPE_FEET,
  241.     ["hand"] = EQUIP_TYPE_HAND,
  242.     ["head"] = EQUIP_TYPE_HEAD,
  243.     ["invalid"] = EQUIP_TYPE_INVALID,
  244.     ["legs"] = EQUIP_TYPE_LEGS,
  245.     ["main_hand"] = EQUIP_TYPE_MAIN_HAND,
  246.     ["neck"] = EQUIP_TYPE_NECK,
  247.     ["off_hand"] = EQUIP_TYPE_OFF_HAND,
  248.     ["one_hand"] = EQUIP_TYPE_ONE_HAND,
  249.     ["poison"] = EQUIP_TYPE_POISON,
  250.     ["ring"] = EQUIP_TYPE_RING,
  251.     ["shoulders"] = EQUIP_TYPE_SHOULDERS,
  252.     ["two_hand"] = EQUIP_TYPE_TWO_HAND,
  253.     ["waist"] = EQUIP_TYPE_WAIST,
  254. }
  255.  
  256. local qualityMap = {
  257.     ["arcane"] = ITEM_QUALITY_ARCANE,
  258.     ["artifact"] = ITEM_QUALITY_ARTIFACT,
  259.     ["legendary"] = ITEM_QUALITY_LEGENDARY,
  260.     ["magic"] = ITEM_QUALITY_MAGIC,
  261.     ["normal"] = ITEM_QUALITY_NORMAL,
  262.     ["trash"] = ITEM_QUALITY_TRASH,
  263.                    
  264.     ["blue"] = ITEM_QUALITY_ARCANE,
  265.     ["purple"] = ITEM_QUALITY_ARTIFACT,
  266.     ["gold"] = ITEM_QUALITY_LEGENDARY,
  267.     ["green"] = ITEM_QUALITY_MAGIC,
  268.     ["white"] = ITEM_QUALITY_NORMAL,
  269.     ["grey"] = ITEM_QUALITY_TRASH,
  270. }
  271.  
  272. local boundTypeMap = {
  273.     ["none"] = BIND_TYPE_NONE,
  274.     ["on_equip"] = BIND_TYPE_ON_EQUIP,
  275.     ["on_pickup"] = BIND_TYPE_ON_PICKUP,
  276.     ["on_pickup_backpack"] = BIND_TYPE_ON_PICKUP_BACKPACK,
  277.     ["unset"] = BIND_TYPE_UNSET,
  278. }
  279.  
  280. local traitMap = {
  281.     ["armor_divines"] = ITEM_TRAIT_TYPE_ARMOR_DIVINES,
  282.     ["armor_impenetrable"] = ITEM_TRAIT_TYPE_ARMOR_IMPENETRABLE,
  283.     ["armor_infused"] = ITEM_TRAIT_TYPE_ARMOR_INFUSED,
  284.     ["armor_intricate"] = ITEM_TRAIT_TYPE_ARMOR_INTRICATE,
  285.     ["armor_nirnhoned"] = ITEM_TRAIT_TYPE_ARMOR_NIRNHONED,
  286.     ["armor_ornate"] = ITEM_TRAIT_TYPE_ARMOR_ORNATE,
  287.     ["armor_prosperous"] = ITEM_TRAIT_TYPE_ARMOR_PROSPEROUS,
  288.     ["armor_reinforced"] = ITEM_TRAIT_TYPE_ARMOR_REINFORCED,
  289.     ["armor_sturdy"] = ITEM_TRAIT_TYPE_ARMOR_STURDY,
  290.     ["armor_training"] = ITEM_TRAIT_TYPE_ARMOR_TRAINING,
  291.     ["armor_well_fitted"] = ITEM_TRAIT_TYPE_ARMOR_WELL_FITTED,
  292.     ["deprecated"] = ITEM_TRAIT_TYPE_DEPRECATED,
  293.     ["jewelry_arcane"] = ITEM_TRAIT_TYPE_JEWELRY_ARCANE,
  294.     ["jewelry_healthy"] = ITEM_TRAIT_TYPE_JEWELRY_HEALTHY,
  295.     ["jewelry_ornate"] = ITEM_TRAIT_TYPE_JEWELRY_ORNATE,
  296.     ["jewelry_intricate"] = ITEM_TRAIT_TYPE_JEWELRY_INTRICATE, 
  297.     ["jewelry_robust"] = ITEM_TRAIT_TYPE_JEWELRY_ROBUST,
  298.     ["none"] = ITEM_TRAIT_TYPE_NONE,
  299.     ["weapon_charged"] = ITEM_TRAIT_TYPE_WEAPON_CHARGED,
  300.     ["weapon_decisive"] = ITEM_TRAIT_TYPE_WEAPON_DECISIVE,
  301.     ["weapon_defending"] = ITEM_TRAIT_TYPE_WEAPON_DEFENDING,
  302.     ["weapon_infused"] = ITEM_TRAIT_TYPE_WEAPON_INFUSED,
  303.     ["weapon_intricate"] = ITEM_TRAIT_TYPE_WEAPON_INTRICATE,
  304.     ["weapon_nirnhoned"] = ITEM_TRAIT_TYPE_WEAPON_NIRNHONED,
  305.     ["weapon_ornate"] = ITEM_TRAIT_TYPE_WEAPON_ORNATE,
  306.     ["weapon_powered"] = ITEM_TRAIT_TYPE_WEAPON_POWERED,
  307.     ["weapon_precise"] = ITEM_TRAIT_TYPE_WEAPON_PRECISE,
  308.     ["weapon_sharpened"] = ITEM_TRAIT_TYPE_WEAPON_SHARPENED,
  309.     ["weapon_training"] = ITEM_TRAIT_TYPE_WEAPON_TRAINING,
  310. }
  311.  
  312. local weaponTypeMap = {
  313.     ["axe"] = WEAPONTYPE_AXE,
  314.     ["bow"] = WEAPONTYPE_BOW,
  315.     ["dagger"] = WEAPONTYPE_DAGGER,
  316.     ["fire_staff"] = WEAPONTYPE_FIRE_STAFF,
  317.     ["frost_staff"] = WEAPONTYPE_FROST_STAFF,
  318.     ["hammer"] = WEAPONTYPE_HAMMER,
  319.     ["healing_staff"] = WEAPONTYPE_HEALING_STAFF,
  320.     ["lightning_staff"] = WEAPONTYPE_LIGHTNING_STAFF,
  321.     ["none"] = WEAPONTYPE_NONE,
  322.     ["rune"] = WEAPONTYPE_RUNE,
  323.     ["shield"] = WEAPONTYPE_SHIELD,
  324.     ["sword"] = WEAPONTYPE_SWORD,
  325.     ["two_handed_axe"] = WEAPONTYPE_TWO_HANDED_AXE,
  326.     ["two_handed_hammer"] = WEAPONTYPE_TWO_HANDED_HAMMER,
  327.     ["two_handed_sword"] = WEAPONTYPE_TWO_HANDED_SWORD,
  328. }
  329.  
  330. local armorTypeMap = {
  331.     ["heavy"] = ARMORTYPE_HEAVY,
  332.     ["light"] = ARMORTYPE_LIGHT,
  333.     ["medium"] = ARMORTYPE_MEDIUM,
  334.     ["none"] = ARMORTYPE_NONE,
  335. }
  336.  
  337. local markedTypeMap = {
  338.     ["lock"] = FCOIS_CON_ICON_LOCK,
  339.     ["gear_1"] = FCOIS_CON_ICON_GEAR_1,
  340.     ["research"] = FCOIS_CON_ICON_RESEARCH,
  341.     ["gear_2"] = FCOIS_CON_ICON_GEAR_2,
  342.     ["sell"] = FCOIS_CON_ICON_SELL,
  343.     ["gear_3"] = FCOIS_CON_ICON_GEAR_3,
  344.     ["gear_4"] = FCOIS_CON_ICON_GEAR_4,
  345.     ["gear_5"] = FCOIS_CON_ICON_GEAR_5,
  346.     ["deconstruction"] = FCOIS_CON_ICON_DECONSTRUCTION,
  347.     ["improvement"] = FCOIS_CON_ICON_IMPROVEMENT,
  348.     ["sell_at_guildstore"] = FCOIS_CON_ICON_SELL_AT_GUILDSTORE,
  349.     ["intricate"] = FCOIS_CON_ICON_INTRICATE,
  350.     ["dynamic_1"] = FCOIS_CON_ICON_DYNAMIC_1,
  351.     ["dynamic_2"] = FCOIS_CON_ICON_DYNAMIC_2,
  352.     ["dynamic_3"] = FCOIS_CON_ICON_DYNAMIC_3,
  353.     ["dynamic_4"] = FCOIS_CON_ICON_DYNAMIC_4,
  354.     ["dynamic_5"] = FCOIS_CON_ICON_DYNAMIC_5,
  355.     ["dynamic_6"] = FCOIS_CON_ICON_DYNAMIC_6,
  356.     ["dynamic_7"] = FCOIS_CON_ICON_DYNAMIC_7,
  357.     ["dynamic_8"] = FCOIS_CON_ICON_DYNAMIC_8,
  358.     ["dynamic_9"] = FCOIS_CON_ICON_DYNAMIC_9,
  359.     ["dynamic_10"] = FCOIS_CON_ICON_DYNAMIC_10,
  360.     ["dynamic_11"] = FCOIS_CON_ICON_DYNAMIC_11,
  361.     ["dynamic_12"] = FCOIS_CON_ICON_DYNAMIC_12,
  362.     ["dynamic_13"] = FCOIS_CON_ICON_DYNAMIC_13,
  363.     ["dynamic_14"] = FCOIS_CON_ICON_DYNAMIC_14,
  364.     ["dynamic_15"] = FCOIS_CON_ICON_DYNAMIC_15,
  365.     ["dynamic_16"] = FCOIS_CON_ICON_DYNAMIC_16,
  366.     ["dynamic_17"] = FCOIS_CON_ICON_DYNAMIC_17,
  367.     ["dynamic_18"] = FCOIS_CON_ICON_DYNAMIC_18,
  368.     ["dynamic_19"] = FCOIS_CON_ICON_DYNAMIC_19,
  369.     ["dynamic_20"] = FCOIS_CON_ICON_DYNAMIC_20,
  370.     ["dynamic_21"] = FCOIS_CON_ICON_DYNAMIC_21,
  371.     ["dynamic_22"] = FCOIS_CON_ICON_DYNAMIC_22,
  372.     ["dynamic_23"] = FCOIS_CON_ICON_DYNAMIC_23,
  373.     ["dynamic_24"] = FCOIS_CON_ICON_DYNAMIC_24,
  374.     ["dynamic_25"] = FCOIS_CON_ICON_DYNAMIC_25,
  375.     ["dynamic_26"] = FCOIS_CON_ICON_DYNAMIC_26,
  376.     ["dynamic_27"] = FCOIS_CON_ICON_DYNAMIC_27,
  377.     ["dynamic_28"] = FCOIS_CON_ICON_DYNAMIC_28,
  378.     ["dynamic_29"] = FCOIS_CON_ICON_DYNAMIC_29,
  379.     ["dynamic_30"] = FCOIS_CON_ICON_DYNAMIC_30,
  380. }
  381.  
  382. --============Rule Function==============--
  383.  
  384. local L = AutoCategory.localizefunc
  385. function AutoCategory.RuleFunc.SpecializedItemType( ... )
  386.     local fn = "type"
  387.     local ac = select( '#', ... )
  388.     if ac == 0 then
  389.         error( string.format("error: %s(): require arguments." , fn))
  390.     end
  391.    
  392.     for ax = 1, ac do
  393.        
  394.         local arg = select( ax, ... )
  395.        
  396.         if not arg then
  397.             error( string.format("error: %s():  argument is nil." , fn))
  398.         end
  399.        
  400.         local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  401.         local _, sptype = GetItemLinkItemType(itemLink)
  402.         if type( arg ) == "number" then
  403.             if arg == sptype then
  404.                 return true
  405.             end
  406.         elseif type( arg ) == "string" then
  407.             local v = specializedItemTypeMap[string.lower( arg )]
  408.             if type ( v ) == "table" then
  409.                 if v[sptype] then
  410.                     return true
  411.                 end
  412.             else
  413.                 if v and v == sptype then
  414.                     return true
  415.                 end
  416.             end
  417.         else
  418.             error( string.format("error: %s(): argument is error." , fn ) )
  419.         end
  420.        
  421.     end
  422.    
  423.     return false
  424.    
  425. end
  426.  
  427. function AutoCategory.RuleFunc.ItemType( ... )
  428.     local fn = "type"
  429.     local ac = select( '#', ... )
  430.     if ac == 0 then
  431.         error( string.format("error: %s(): require arguments." , fn))
  432.     end
  433.    
  434.   local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  435.   local itemType = GetItemLinkItemType(itemLink)
  436.     for ax = 1, ac do
  437.        
  438.         local arg = select( ax, ... )
  439.        
  440.         if not arg then
  441.             error( string.format("error: %s():  argument is nil." , fn))
  442.         end
  443.        
  444.         if type( arg ) == "number" then
  445.             if arg == itemType then
  446.                 return true
  447.             end
  448.         elseif type( arg ) == "string" then        
  449.             local v = itemTypeMap[string.lower( arg )]
  450.             if type ( v ) == "table" then
  451.                 if v[itemType] then
  452.                     return true
  453.                 end
  454.             else
  455.                 if v and v == itemType then
  456.                     return true
  457.                 end
  458.             end
  459.         else
  460.             error( string.format("error: %s(): argument is error." , fn ) )
  461.         end
  462.        
  463.     end
  464.    
  465.     return false
  466.    
  467. end
  468.  
  469. function AutoCategory.RuleFunc.EquipType( ... )
  470.     local fn = "equiptype"
  471.     local ac = select( '#', ... )
  472.     if ac == 0 then
  473.         error( string.format("error: %s(): require arguments." , fn))
  474.     end
  475.    
  476.   local _, _, _, _, _, equipType = GetItemInfo(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  477.  
  478.     for ax = 1, ac do
  479.        
  480.         local arg = select( ax, ... )
  481.        
  482.         if not arg then
  483.             error( string.format("error: %s():  argument is nil." , fn))
  484.         end
  485.        
  486.         if type( arg ) == "number" then
  487.             if arg == equipType then
  488.                 return true
  489.             end
  490.         elseif type( arg ) == "string" then
  491.             local v = equipTypeMap[string.lower( arg )]
  492.             if v and v == equipType then
  493.                 return true
  494.             end
  495.         else
  496.             error( string.format("error: %s(): argument is error." , fn ) )
  497.         end
  498.        
  499.     end
  500.    
  501.     return false
  502.    
  503. end
  504.  
  505. function AutoCategory.RuleFunc.IsLocked( ... )
  506.     local fn = "islocked"
  507.    
  508.     local isLocked = IsItemPlayerLocked(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  509.     return isLocked
  510. end
  511.  
  512. function AutoCategory.RuleFunc.IsBound( ... )
  513.     local fn = "isbound"
  514.    
  515.     local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  516.     local isBound = IsItemLinkBound(itemLink)
  517.     return isBound
  518. end
  519.  
  520. function AutoCategory.RuleFunc.IsStolen( ... )
  521.     local fn = "isstolen"
  522.    
  523.     return IsItemStolen(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  524. end
  525.  
  526. function AutoCategory.RuleFunc.IsBoPTradeable( ... )
  527.     local fn = "isboptradeable"
  528.     local result = IsItemBoPAndTradeable(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  529.     return result
  530. end
  531.  
  532. function AutoCategory.RuleFunc.IsCrafted( ... )
  533.     local fn = "iscrafted"
  534.     local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  535.     local result = IsItemLinkCrafted(itemLink)
  536.     return result
  537. end
  538.  
  539. function AutoCategory.RuleFunc.IsLearnable( ... )
  540.     local fn = "islearnable"
  541.     local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  542.    
  543.   local itemType = GetItemLinkItemType(itemLink) --GetItemType(bagId, slotIndex)
  544.   if itemType == ITEMTYPE_RECIPE then
  545.       return not IsItemLinkRecipeKnown(itemLink)
  546.   elseif IsItemLinkBook(itemLink) then
  547.       return not IsItemLinkBookKnown(itemLink)
  548.   end
  549.     return false
  550. end
  551.  
  552. function AutoCategory.RuleFunc.Quality( ... )
  553.     local fn = "quality"  
  554.     local ac = select( '#', ... )
  555.     if ac == 0 then
  556.         error( string.format("error: %s(): require arguments." , fn))
  557.     end
  558.    
  559.     local _, _, _, _, _, _, _, quality = GetItemInfo(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  560.    
  561.     for ax = 1, ac do
  562.        
  563.         local arg = select( ax, ... )
  564.        
  565.         if not arg then
  566.             error( string.format("error: %s():  argument is nil." , fn))
  567.         end
  568.          
  569.         if type( arg ) == "number" then
  570.             if arg == quality then
  571.                 return true
  572.             end
  573.         elseif type( arg ) == "string" then
  574.  
  575.             local v = qualityMap[string.lower( arg )]
  576.             if v and v == quality then
  577.                 return true
  578.             end
  579.         else
  580.             error( string.format("error: %s(): argument is error." , fn ) )
  581.         end
  582.        
  583.     end
  584.    
  585.     return false
  586. end
  587.  
  588. function AutoCategory.RuleFunc.GetQuality()
  589.     local fn = "getquality"
  590.    
  591.     local _, _, _, _, _, _, _, quality = GetItemInfo(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  592.     return quality
  593. end
  594.  
  595. function AutoCategory.RuleFunc.IsNew( ... )
  596.     local fn = "isnew"
  597.     if not AutoCategory.checkingItemBagId then
  598.         return false
  599.     end
  600.     return SHARED_INVENTORY:IsItemNew(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  601. end
  602.  
  603. --function AutoCategory.RuleFunc.GetMaxTraits()
  604. --  local fn = "getmaxtraits"
  605.  
  606. function AutoCategory.RuleFunc.IsNew( ... )
  607.     local fn = "isnew"
  608.     if not AutoCategory.checkingItemBagId then
  609.         return false
  610.     end
  611.     return SHARED_INVENTORY:IsItemNew(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  612. end
  613.  
  614. function AutoCategory.RuleFunc.BoundType( ... )
  615.     local fn = "boundtype"
  616.     local ac = select( '#', ... )
  617.     if ac == 0 then
  618.         error( string.format("error: %s(): require arguments." , fn))
  619.     end
  620.    
  621.   local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  622.   local boundType = GetItemLinkBindType(itemLink)
  623.     for ax = 1, ac do
  624.        
  625.         local arg = select( ax, ... )
  626.        
  627.         if not arg then
  628.             error( string.format("error: %s():  argument is nil." , fn))
  629.         end
  630.        
  631.         if type( arg ) == "number" then
  632.             if arg == boundType then
  633.                 return true
  634.             end
  635.         elseif type( arg ) == "string" then
  636.             local v = boundTypeMap[string.lower( arg )]
  637.             if v and v == boundType then
  638.                 return true
  639.             end
  640.         else
  641.             error( string.format("error: %s(): argument is error." , fn ) )
  642.         end
  643.        
  644.     end
  645.    
  646.     return false
  647.    
  648. end
  649.  
  650.  
  651. function AutoCategory.RuleFunc.FilterType( ... )
  652.     local fn = "filtertype"
  653.     local ac = select( '#', ... )
  654.     if ac == 0 then
  655.         error( string.format("error: %s(): require arguments." , fn))
  656.     end
  657.  
  658.   local itemFilterType = { GetItemFilterTypeInfo(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex) }
  659.     for ax = 1, ac do
  660.        
  661.         local arg = select( ax, ... )
  662.        
  663.         if not arg then
  664.             error( string.format("error: %s():  argument is nil." , fn))
  665.         end
  666.        
  667.         local testFilterType
  668.  
  669.         if type( arg ) == "number" then
  670.             testFilterType = arg
  671.         elseif type( arg ) == "string" then  
  672.             testFilterType = filterTypeMap[string.lower( arg )]
  673.             if testFilterType == nil then
  674.                 error( string.format("error: %s(): argument '%s' is not recognized.", fn, string.lower(arg)))
  675.             end
  676.         else
  677.             error( string.format("error: %s(): argument is error." , fn ) )
  678.         end
  679.         for i = 1, #itemFilterType do
  680.             if itemFilterType[i] == testFilterType then
  681.                 return true
  682.             end
  683.         end
  684.     end
  685.    
  686.     return false
  687.    
  688. end
  689.  
  690. function AutoCategory.RuleFunc.Level( ... )
  691.     local fn = "level"
  692.     local level = GetItemRequiredLevel(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  693.     return level
  694. end
  695.  
  696. function AutoCategory.RuleFunc.CPLevel( ... )
  697.     local fn = "cp"
  698.     local level = GetItemRequiredChampionPoints(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  699.     return level
  700. end
  701.  
  702. function AutoCategory.RuleFunc.CharLevel( ... )
  703.     local fn = "charlevel"
  704.     local level = GetUnitLevel("player")
  705.     return level
  706. end
  707.  
  708. function AutoCategory.RuleFunc.CharCP( ... )
  709.     local fn = "charcp"
  710.     local cp = GetUnitChampionPoints("player")
  711.     return cp
  712. end
  713.  
  714.  
  715. function AutoCategory.RuleFunc.SellPrice( ... )
  716.     local fn = "sellprice"
  717.     local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  718.        
  719.     local _, sellPrice = GetItemLinkInfo(itemLink)
  720.     return sellPrice
  721. end
  722.  
  723. function AutoCategory.RuleFunc.StackSize( ... )
  724.     local fn = "stacksize"
  725.     local stackSize = GetSlotStackSize(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  726.      
  727.     return stackSize
  728. end
  729.  
  730. function AutoCategory.RuleFunc.KeepForResearch( ... )
  731.     local traitInformation = GetItemTraitInformation(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  732.     return traitInformation == ITEM_TRAIT_INFORMATION_CAN_BE_RESEARCHED
  733. end
  734.  
  735.  
  736. function AutoCategory.RuleFunc.SetName( ... )
  737.     local fn = "set"
  738.     local ac = select( '#', ... )
  739.     if ac == 0 then
  740.         error( string.format("error: %s(): require arguments." , fn))
  741.     end
  742.    
  743.   local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  744.   local hasSet, setName = GetItemLinkSetInfo(itemLink)
  745.   if not hasSet then
  746.     return false
  747.   end
  748.     for ax = 1, ac do
  749.        
  750.         local arg = select( ax, ... )
  751.        
  752.         if not arg then
  753.             error( string.format("error: %s():  argument is nil." , fn))
  754.         end
  755.        
  756.         local findString
  757.         if type( arg ) == "number" then
  758.             findString = tostring(arg)
  759.         elseif type( arg ) == "string" then
  760.             findString = arg
  761.         else
  762.             error( string.format("error: %s(): argument is error." , fn ) )
  763.         end
  764.         --fix german language issue
  765.         setName = string.gsub( setName , "%^.*", "")
  766.         if string.find(setName, findString, 1 ,true) then
  767.             return true
  768.         end
  769.     end
  770.    
  771.     return false
  772. end
  773.  
  774.  
  775. function AutoCategory.RuleFunc.AutoSetName( ... )
  776.     local fn = "autoset"
  777.  
  778.     local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  779.     local hasSet, setName = GetItemLinkSetInfo(itemLink)
  780.     if not hasSet then
  781.         return false
  782.     end
  783.     --fix german language issue
  784.     setName = string.gsub( setName , "%^.*", "")
  785.     AutoCategory.AdditionCategoryName = AutoCategory.AdditionCategoryName .. string.format(" (%s)", setName)
  786.     return true
  787. end
  788.  
  789. function AutoCategory.RuleFunc.IsSet( ... )
  790.     local fn = "isset"
  791.     local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  792.     local hasSet, setName = GetItemLinkSetInfo(itemLink)
  793.     return hasSet
  794. end
  795.  
  796. function AutoCategory.RuleFunc.IsMonsterSet( ... )
  797.     local fn = "ismonsterset"
  798.     local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  799.     local hasSet, setName, numBonuses, numEquipped, maxEquipped = GetItemLinkSetInfo(itemLink)
  800.     if not hasSet then
  801.         return false
  802.     end
  803.     if maxEquipped == 2 then
  804.         return true
  805.     end
  806.     return false
  807. end
  808.  
  809. function AutoCategory.RuleFunc.TraitType( ... )
  810.     local fn = "traittype"
  811.     local ac = select( '#', ... )
  812.     if ac == 0 then
  813.         error( string.format("error: %s(): require arguments." , fn))
  814.     end
  815.    
  816.   local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  817.   local traitType, _ = GetItemLinkTraitInfo(itemLink)
  818.     for ax = 1, ac do
  819.        
  820.         local arg = select( ax, ... )
  821.        
  822.         if not arg then
  823.             error( string.format("error: %s():  argument is nil." , fn))
  824.         end
  825.        
  826.         if type( arg ) == "number" then
  827.             if arg == traitType then
  828.                 return true
  829.             end
  830.         elseif type( arg ) == "string" then
  831.             local v = traitMap[string.lower( arg )]
  832.             if v and v == traitType then
  833.                 return true
  834.             end
  835.         else
  836.             error( string.format("error: %s(): argument is error." , fn ) )
  837.         end
  838.     end
  839.    
  840.     return false
  841. end
  842.  
  843. function AutoCategory.RuleFunc.ArmorType( ... )
  844.     local fn = "armortype"
  845.     local ac = select( '#', ... )
  846.     if ac == 0 then
  847.         error( string.format("error: %s(): require arguments." , fn))
  848.     end
  849.    
  850.   local armorType = GetItemArmorType(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  851.     for ax = 1, ac do
  852.        
  853.         local arg = select( ax, ... )
  854.        
  855.         if not arg then
  856.             error( string.format("error: %s():  argument is nil." , fn))
  857.         end
  858.        
  859.         if type( arg ) == "number" then
  860.             if arg == armorType then
  861.                 return true
  862.             end
  863.         elseif type( arg ) == "string" then
  864.  
  865.             local v = armorTypeMap[string.lower( arg )]
  866.             if v and v == armorType then
  867.                 return true
  868.             end
  869.         else
  870.             error( string.format("error: %s(): argument is error." , fn ) )
  871.         end
  872.     end
  873.    
  874.     return false
  875. end
  876.  
  877. function AutoCategory.RuleFunc.WeaponType( ... )
  878.     local fn = "weapontype"
  879.     local ac = select( '#', ... )
  880.     if ac == 0 then
  881.         error( string.format("error: %s(): require arguments." , fn))
  882.     end
  883.    
  884.   local weaponType = GetItemWeaponType(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  885.     for ax = 1, ac do
  886.        
  887.         local arg = select( ax, ... )
  888.        
  889.         if not arg then
  890.             error( string.format("error: %s():  argument is nil." , fn))
  891.         end
  892.        
  893.         if type( arg ) == "number" then
  894.             if arg == weaponType then
  895.                 return true
  896.             end
  897.         elseif type( arg ) == "string" then
  898.             local v = weaponTypeMap[string.lower( arg )]
  899.             if v and v == weaponType then
  900.                 return true
  901.             end
  902.         else
  903.             error( string.format("error: %s(): argument is error." , fn ) )
  904.         end
  905.     end
  906.    
  907.     return false
  908. end
  909.  
  910. function AutoCategory.RuleFunc.TraitString( ... )
  911.     local fn = "traitstring"
  912.     local ac = select( '#', ... )
  913.     if ac == 0 then
  914.         error( string.format("error: %s(): require arguments." , fn))
  915.     end
  916.    
  917.   local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  918.   local traitType, _ = GetItemLinkTraitInfo(itemLink)
  919.   local traitText = string.lower(GetString("SI_ITEMTRAITTYPE", traitType))
  920.     for ax = 1, ac do
  921.        
  922.         local arg = select( ax, ... )
  923.        
  924.         if not arg then
  925.             error( string.format("error: %s():  argument is nil." , fn))
  926.         end
  927.        
  928.         local findString;
  929.         if type( arg ) == "number" then
  930.             findString = tostring(arg)
  931.         elseif type( arg ) == "string" then
  932.             findString = arg
  933.         else
  934.             error( string.format("error: %s(): argument is error." , fn ) )
  935.         end
  936.         findString = string.lower(findString)
  937.         if string.find(traitText, findString, 1, true) then
  938.             return true
  939.         end
  940.     end
  941.    
  942.     return false
  943.    
  944. end
  945.  
  946. function AutoCategory.RuleFunc.ItemName( ... )
  947.     local fn = "itemname"
  948.     local ac = select( '#', ... )
  949.     if ac == 0 then
  950.         error( string.format("error: %s(): require arguments." , fn))
  951.     end
  952.    
  953.     local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  954.     --local hasSet, setName = GetItemLinkSetInfo(itemLink)
  955.     local itemName = string.lower(GetItemLinkName(itemLink))
  956.    
  957.     --if not hasSet then
  958.     --  return false
  959.     --end
  960.     for ax = 1, ac do
  961.        
  962.         local arg = select( ax, ... )
  963.        
  964.         if not arg then
  965.             error( string.format("error: %s():  argument is nil." , fn))
  966.         end
  967.        
  968.         local findString
  969.         if type( arg ) == "number" then
  970.             findString = tostring(arg)
  971.         elseif type( arg ) == "string" then
  972.             findString = arg
  973.         else
  974.             error( string.format("error: %s(): argument is error." , fn ) )
  975.         end
  976.         --fix german language issue
  977.         findString = string.gsub(findString , "%^.*", "")
  978.         findString = string.lower(findString)
  979.         if string.find(itemName, findString, 1 ,true) then
  980.             return true
  981.         end
  982.     end
  983.    
  984.     return false
  985. end
  986.  
  987. local function IokaniGearChanger_GetGearSet(bagId, slotIndex)
  988.     local result = {}
  989.     if GearChangerByIakoni and GearChangerByIakoni.savedVariables then
  990.         local itemType = GetItemType(bagId, slotIndex)
  991.         if itemType == ITEMTYPE_ARMOR or itemType == ITEMTYPE_WEAPON then
  992.             local a=GearChangerByIakoni.savedVariables.ArraySet
  993.             local b=GearChangerByIakoni.savedVariables.ArraySetSavedFlag
  994.             local itemID = Id64ToString(GetItemUniqueId(bagId, slotIndex))
  995.             for i=1, 10 do
  996.                 if b[i] == 1 then --check only if the set is saved
  997.                     for _,u in pairs(GearChangerByIakoni.WornArray) do
  998.                         if itemID==a[i][u] then
  999.                             --find gear in set i
  1000.                             table.insert(result, i)
  1001.                         end
  1002.                     end
  1003.                 end
  1004.             end
  1005.         end
  1006.     end
  1007.     return result
  1008. end
  1009.  
  1010. function AutoCategory.RuleFunc.SetIndex( ... )
  1011.     local fn = "setindex"
  1012.     local ac = select( '#', ... )
  1013.     if ac == 0 then
  1014.         error( string.format("error: %s(): require arguments." , fn))
  1015.     end
  1016.    
  1017.     local setIndices = IokaniGearChanger_GetGearSet(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  1018.     for ax = 1, ac do
  1019.        
  1020.         local arg = select( ax, ... )
  1021.         local comIndex = -1
  1022.         if not arg then
  1023.             error( string.format("error: %s():  argument is nil." , fn))
  1024.         end
  1025.         if type( arg ) == "number" then
  1026.             comIndex = arg
  1027.         elseif type( arg ) == "string" then
  1028.             comIndex = tonumber(arg)
  1029.         else
  1030.             error( string.format("error: %s(): argument is error." , fn ) )
  1031.         end
  1032.         for i=1, #setIndices do
  1033.             local index = setIndices[i]
  1034.             if comIndex == index then
  1035.                 return true
  1036.             end
  1037.         end
  1038.     end
  1039.    
  1040.     return false
  1041. end
  1042.  
  1043. function AutoCategory.RuleFunc.InSet( ... )
  1044.     local fn = "inset"
  1045.    
  1046.     local setIndices = IokaniGearChanger_GetGearSet(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  1047.     return #setIndices ~= 0
  1048. end
  1049.  
  1050. function AutoCategory.RuleFunc.AlphaGear( ... )
  1051.     if not AG then
  1052.         return false
  1053.     end
  1054.     local fn = "alphagear"
  1055.     local ac = select( '#', ... )
  1056.     if ac == 0 then
  1057.         error( string.format("error: %s(): require arguments." , fn))
  1058.     end
  1059.    
  1060.     local uid = Id64ToString(GetItemUniqueId(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex))
  1061.     if not uid then return false end
  1062.  
  1063.     for ax = 1, ac do
  1064.         local arg = select( ax, ... )
  1065.         local comIndex = -1
  1066.         if not arg then
  1067.             error( string.format("error: %s():  argument is nil." , fn))
  1068.         end
  1069.         if type( arg ) == "number" then
  1070.             comIndex = arg
  1071.         elseif type( arg ) == "string" then
  1072.             comIndex = tonumber(arg)
  1073.         else
  1074.             error( string.format("error: %s(): argument is error." , fn ) )
  1075.         end
  1076.        
  1077.         local nr = comIndex
  1078.         if AG.setdata[nr].Set.gear > 0 then
  1079.             for slot = 1,14 do
  1080.                 if AG.setdata[AG.setdata[nr].Set.gear].Gear[slot].id == uid then
  1081.                     local setName = AG.setdata[nr].Set.text[1]
  1082.                     AutoCategory.AdditionCategoryName = AutoCategory.AdditionCategoryName .. string.format(" (%s)", setName)
  1083.    
  1084.                     return true
  1085.                 end
  1086.             end
  1087.         end
  1088.     end
  1089.    
  1090.     return false
  1091. end
  1092.  
  1093. local defaultIdTextId
  1094. local function GetFCOISIconText( iconId )
  1095.     if not defaultIdTextId then
  1096.         defaultIdTextId = {
  1097.             [FCOIS_CON_ICON_LOCK] = SI_AC_DEFAULT_CATEGORY_FCOIS_LOCK_MARK,
  1098.             [FCOIS_CON_ICON_GEAR_1] = SI_AC_DEFAULT_CATEGORY_FCOIS_GEAR_1,
  1099.             [FCOIS_CON_ICON_RESEARCH] = SI_AC_DEFAULT_CATEGORY_FCOIS_RESEARCH_MARK,
  1100.             [FCOIS_CON_ICON_GEAR_2] = SI_AC_DEFAULT_CATEGORY_FCOIS_GEAR_2,
  1101.             [FCOIS_CON_ICON_SELL] = SI_AC_DEFAULT_CATEGORY_FCOIS_SELL_MARK,
  1102.             [FCOIS_CON_ICON_GEAR_3] = SI_AC_DEFAULT_CATEGORY_FCOIS_GEAR_3,
  1103.             [FCOIS_CON_ICON_GEAR_4] = SI_AC_DEFAULT_CATEGORY_FCOIS_GEAR_4,
  1104.             [FCOIS_CON_ICON_GEAR_5] = SI_AC_DEFAULT_CATEGORY_FCOIS_GEAR_5,
  1105.             [FCOIS_CON_ICON_DECONSTRUCTION] = SI_AC_DEFAULT_CATEGORY_FCOIS_DECONSTRUCTION_MARK,
  1106.             [FCOIS_CON_ICON_IMPROVEMENT] = SI_AC_DEFAULT_CATEGORY_FCOIS_IMPROVEMENT_MARK,
  1107.             [FCOIS_CON_ICON_SELL_AT_GUILDSTORE] = SI_AC_DEFAULT_CATEGORY_FCOIS_SELL_AT_GUILDSTORE_MARK,
  1108.             [FCOIS_CON_ICON_INTRICATE] = SI_AC_DEFAULT_CATEGORY_FCOIS_INTRICATE_MARK,
  1109.             [FCOIS_CON_ICON_DYNAMIC_1] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_1,
  1110.             [FCOIS_CON_ICON_DYNAMIC_2] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_2,
  1111.             [FCOIS_CON_ICON_DYNAMIC_3] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_3,
  1112.             [FCOIS_CON_ICON_DYNAMIC_4] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_4,
  1113.             [FCOIS_CON_ICON_DYNAMIC_5] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_5,
  1114.             [FCOIS_CON_ICON_DYNAMIC_6] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_6,
  1115.             [FCOIS_CON_ICON_DYNAMIC_7] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_7,
  1116.             [FCOIS_CON_ICON_DYNAMIC_8] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_8,
  1117.             [FCOIS_CON_ICON_DYNAMIC_9] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_9,
  1118.             [FCOIS_CON_ICON_DYNAMIC_10] = SI_AC_DEFAULT_CATEGORY_FCOIS_DYNAMIC_10,
  1119.         }
  1120.     end
  1121.     local stringId = defaultIdTextId[iconId]
  1122.     if stringId ~= nil then
  1123.         local iconText = FCOIS.GetIconText( iconId )
  1124.         if iconText ~= nil then
  1125.             return iconText
  1126.         end
  1127.     end
  1128.     return ""
  1129. end
  1130.  
  1131. function AutoCategory.RuleFunc.IsMarked( ... )
  1132.     local fn = "ismarked"
  1133.     if FCOIS == nil then
  1134.         return false
  1135.     end
  1136.     local ac = select( '#', ... )
  1137.     local checkIconIds = {}
  1138.     local additionalName = ""
  1139.     for ax = 1, ac do
  1140.        
  1141.         local arg = select( ax, ... )
  1142.        
  1143.         if not arg then
  1144.             error( string.format("error: %s():  argument is nil." , fn))
  1145.         end
  1146.          
  1147.         if type( arg ) == "number" then
  1148.             table.insert(checkIconIds, arg)
  1149.         elseif type( arg ) == "string" then
  1150.             local v = markedTypeMap[string.lower( arg )]
  1151.             if v then
  1152.                 table.insert(checkIconIds, v)
  1153.             end
  1154.         else
  1155.             error( string.format("error: %s(): argument is error." , fn ) )
  1156.         end
  1157.     end
  1158.     if #checkIconIds ~= 0 then  
  1159.         for i = 1, #checkIconIds do
  1160.             local v = checkIconIds[i]
  1161.             local iconText = GetFCOISIconText(v)
  1162.             if iconText and iconText ~= "" then
  1163.                 additionalName = additionalName .. iconText
  1164.                 if i ~= #checkIconIds then
  1165.                     additionalName = additionalName .. ", "
  1166.                 end
  1167.             end
  1168.         end
  1169.     end
  1170.    
  1171.     if additionalName ~= "" then
  1172.         AutoCategory.AdditionCategoryName = AutoCategory.AdditionCategoryName .. string.format(" (%s)", additionalName)
  1173.     end
  1174.    
  1175.     if #checkIconIds > 0 then
  1176.         return FCOIS.IsMarked(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex, checkIconIds)
  1177.     else
  1178.         return FCOIS.IsMarked(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex, -1)
  1179.     end
  1180. end
  1181.  
  1182. function AutoCategory.RuleFunc.IsMarkedIS( ... )
  1183.     local fn = "ismarkedis"
  1184.     if ItemSaver == nil then
  1185.         return false
  1186.     end
  1187.     local ac = select( '#', ... )
  1188.     local checkSets = {}
  1189.     for ax = 1, ac do
  1190.        
  1191.         local arg = select( ax, ... )
  1192.         if not arg then
  1193.             error( string.format("error: %s():  argument is nil." , fn))
  1194.         end
  1195.         checkSets[arg]=true
  1196.     end
  1197.     local ismarked, setname = ItemSaver_IsItemSaved(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  1198.     if ismarked == true then
  1199.         if ac > 0 then
  1200.             if checkSets[setname] ~= nil then
  1201.                 return true
  1202.             end
  1203.             return false
  1204.         else
  1205.             return true
  1206.         end
  1207.     end
  1208.     return ismarked
  1209. end
  1210.  
  1211. function AutoCategory.RuleFunc.IsEquipping( ... )
  1212.     local fn = "isequipping"
  1213.     return AutoCategory.checkingItemBagId == BAG_WORN
  1214. end
  1215.  
  1216. function AutoCategory.RuleFunc.IsInBank( ... )
  1217.     return AutoCategory.checkingItemBagId == BAG_BANK or AutoCategory.checkingItemBagId == BAG_SUBSCRIBER_BANK
  1218. end
  1219.  
  1220. function AutoCategory.RuleFunc.IsInQuickslot( ... )
  1221.     local fn = "isinquickslot"
  1222.     local slotIndex = GetItemCurrentActionBarSlot(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  1223.     return slotIndex ~= nil
  1224. end
  1225.  
  1226. function AutoCategory.RuleFunc.GetPriceTTC( ... )
  1227.     local fn = "getpricettc"
  1228.     if TamrielTradeCentre then
  1229.         local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  1230.         local priceInfo = TamrielTradeCentrePrice:GetPriceInfo(itemLink)
  1231.         if priceInfo then
  1232.             local ac = select( '#', ... )
  1233.             if ac == 0 then
  1234.                 --get suggested price
  1235.                 if priceInfo.SuggestedPrice then
  1236.                     return priceInfo.SuggestedPrice
  1237.                 end
  1238.             else
  1239.                 local arg = select( 1, ... )
  1240.                 if type( arg ) == "string" then
  1241.                     if arg == "average" then
  1242.                         if priceInfo.Avg then
  1243.                             return priceInfo.Avg
  1244.                         end
  1245.                     elseif arg == "suggested" then
  1246.                         if priceInfo.SuggestedPrice then
  1247.                             return priceInfo.SuggestedPrice
  1248.                         end
  1249.                     elseif arg == "both" then
  1250.                         if priceInfo.SuggestedPrice then
  1251.                             return priceInfo.SuggestedPrice
  1252.                         elseif priceInfo.Avg then
  1253.                             return priceInfo.Avg
  1254.                         end
  1255.                     end
  1256.                 end
  1257.             end
  1258.         end
  1259.     end
  1260.     return 0
  1261. end
  1262.  
  1263. function AutoCategory.RuleFunc.GetPriceMM( ... )
  1264.     local fn = "getpricemm"
  1265.     if MasterMerchant then
  1266.         local itemLink = GetItemLink(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  1267.         local mmData = MasterMerchant:itemStats(itemLink, false)
  1268.         if (mmData.avgPrice ~= nil) then
  1269.             return mmData.avgPrice
  1270.         end
  1271.     end
  1272.     return 0
  1273. end
  1274.  
  1275. function AutoCategory.RuleFunc.IsTracked( ... )
  1276.   local fn = "istracked"
  1277.   if SetTrack == nil then
  1278.     return false
  1279.   end
  1280.   local ac = select( '#', ... )
  1281.   local checkSets = {}
  1282.   for ax = 1, ac do
  1283.    
  1284.     local arg = select( ax, ... )
  1285.     if not arg then
  1286.       error( string.format("error: %s():  argument is nil." , fn))
  1287.     end
  1288.     checkSets[arg]=true
  1289.   end
  1290.  
  1291.   local iTrackIndex, sTrackName, sTrackColour, sTrackNotes = SetTrack.GetTrackingInfo(AutoCategory.checkingItemBagId, AutoCategory.checkingItemSlotIndex)
  1292.   if iTrackIndex >= 0 then
  1293.     if ac > 0 then
  1294.       if checkSets[sTrackName] ~= nil then
  1295.         -- true only if a specified set name is tracked on this item
  1296.         return true
  1297.       end
  1298.       -- item was tracked but not one of the specified sets, so return false
  1299.       return false
  1300.     else
  1301.       -- specific set names weren't given so true if tracked at all
  1302.       return true
  1303.     end
  1304.   end
  1305.   -- not a set tracked by SetTrack
  1306.   return false  
  1307. end
  1308.  
  1309. AutoCategory.Environment = {
  1310.     -- rule functions
  1311.    
  1312.     type = AutoCategory.RuleFunc.ItemType,
  1313.    
  1314.     sptype = AutoCategory.RuleFunc.SpecializedItemType,
  1315.  
  1316.     equiptype = AutoCategory.RuleFunc.EquipType,
  1317.  
  1318.     filtertype = AutoCategory.RuleFunc.FilterType,
  1319.    
  1320.     traittype = AutoCategory.RuleFunc.TraitType,
  1321.    
  1322.     armortype = AutoCategory.RuleFunc.ArmorType,
  1323.    
  1324.     weapontype = AutoCategory.RuleFunc.WeaponType,
  1325.  
  1326.     isnew = AutoCategory.RuleFunc.IsNew,
  1327.    
  1328.     islocked = AutoCategory.RuleFunc.IsLocked,
  1329.    
  1330.     isbound = AutoCategory.RuleFunc.IsBound,
  1331.    
  1332.     isstolen = AutoCategory.RuleFunc.IsStolen,
  1333.    
  1334.     isboptradeable = AutoCategory.RuleFunc.IsBoPTradeable,
  1335.    
  1336.     iscrafted = AutoCategory.RuleFunc.IsCrafted,
  1337.    
  1338.     islearnable = AutoCategory.RuleFunc.IsLearnable,
  1339.    
  1340.     quality = AutoCategory.RuleFunc.Quality,
  1341.    
  1342.     getquality = AutoCategory.RuleFunc.GetQuality,
  1343.    
  1344.     boundtype = AutoCategory.RuleFunc.BoundType,
  1345.    
  1346.     level = AutoCategory.RuleFunc.Level,
  1347.    
  1348.     cp = AutoCategory.RuleFunc.CPLevel,
  1349.    
  1350.     charlevel = AutoCategory.RuleFunc.CharLevel,
  1351.    
  1352.     charcp = AutoCategory.RuleFunc.CharCP,
  1353.    
  1354.     sellprice = AutoCategory.RuleFunc.SellPrice,
  1355.    
  1356.     stacksize = AutoCategory.RuleFunc.StackSize,
  1357.  
  1358.     set = AutoCategory.RuleFunc.SetName,
  1359.  
  1360.     autoset = AutoCategory.RuleFunc.AutoSetName,
  1361.    
  1362.     isset = AutoCategory.RuleFunc.IsSet,
  1363.    
  1364.     itemname = AutoCategory.RuleFunc.ItemName,
  1365.    
  1366.     ismonsterset = AutoCategory.RuleFunc.IsMonsterSet,
  1367.  
  1368.     traitstring = AutoCategory.RuleFunc.TraitString,
  1369.  
  1370.     isequipping = AutoCategory.RuleFunc.IsEquipping,
  1371.    
  1372.     isinbank = AutoCategory.RuleFunc.IsInBank,
  1373.  
  1374.     isinquickslot = AutoCategory.RuleFunc.IsInQuickslot,
  1375.      
  1376.     keepresearch = AutoCategory.RuleFunc.KeepForResearch,
  1377.  
  1378.     -- Iakoni's Gear Changer
  1379.     setindex = AutoCategory.RuleFunc.SetIndex,
  1380.  
  1381.     inset = AutoCategory.RuleFunc.InSet,
  1382.    
  1383.     -- Alpha Gear
  1384.     alphagear = AutoCategory.RuleFunc.AlphaGear,
  1385.    
  1386.     -- FCO Item Saver
  1387.     ismarked = AutoCategory.RuleFunc.IsMarked,
  1388.    
  1389.     -- Item Saver
  1390.     ismarkedis = AutoCategory.RuleFunc.IsMarkedIS,
  1391.    
  1392.     -- Tamriel Trade Centre
  1393.     getpricettc = AutoCategory.RuleFunc.GetPriceTTC,
  1394.    
  1395.     -- Master Merchant
  1396.     getpricemm = AutoCategory.RuleFunc.GetPriceMM,
  1397.    
  1398.     -- Set Tracker
  1399.     istracked = AutoCategory.RuleFunc.IsTracked,
  1400.  
  1401. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement