2637 lines
63 KiB
C++
2637 lines
63 KiB
C++
// Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
|
|
// For more information, see LICENCE in the main folder
|
|
|
|
#ifndef ITEMDB_HPP
|
|
#define ITEMDB_HPP
|
|
|
|
#include <map>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include <common/database.hpp>
|
|
#include <common/db.hpp>
|
|
#include <common/malloc.hpp>
|
|
#include <common/mmo.hpp> // ITEM_NAME_LENGTH
|
|
|
|
#include "script.hpp"
|
|
#include "status.hpp"
|
|
|
|
enum e_ammo_type : uint8;
|
|
|
|
///Use apple for unknown items.
|
|
const t_itemid UNKNOWN_ITEM_ID = 512;
|
|
/// The maximum number of item delays
|
|
#define MAX_ITEMDELAYS 10
|
|
///Designed for search functions, species max number of matches to display.
|
|
#ifndef MAX_SEARCH
|
|
#define MAX_SEARCH 10
|
|
#endif
|
|
|
|
#define MAX_ROULETTE_LEVEL 7 /** client-defined value **/
|
|
#define MAX_ROULETTE_COLUMNS 9 /** client-defined value **/
|
|
|
|
const t_itemid CARD0_FORGE = 0x00FF;
|
|
const t_itemid CARD0_CREATE = 0x00FE;
|
|
const t_itemid CARD0_PET = 0x0100;
|
|
|
|
///Marks if the card0 given is "special" (non-item id used to mark pets/created items. [Skotlex]
|
|
#define itemdb_isspecial(i) (i == CARD0_FORGE || i == CARD0_CREATE || i == CARD0_PET)
|
|
|
|
///Enum of item id (for hardcoded purpose)
|
|
enum item_itemid : t_itemid
|
|
{
|
|
ITEMID_DUMMY = 499,
|
|
ITEMID_RED_POTION = 501,
|
|
ITEMID_YELLOW_POTION = 503,
|
|
ITEMID_WHITE_POTION = 504,
|
|
ITEMID_BLUE_POTION = 505,
|
|
ITEMID_APPLE = 512,
|
|
ITEMID_HOLY_WATER = 523,
|
|
ITEMID_PUMPKIN = 535,
|
|
ITEMID_PET_FOOD = 537,
|
|
ITEMID_RED_SLIM_POTION = 545,
|
|
ITEMID_YELLOW_SLIM_POTION = 546,
|
|
ITEMID_WHITE_SLIM_POTION = 547,
|
|
ITEMID_ANODYNE = 605,
|
|
ITEMID_ALOEBERA = 606,
|
|
ITEMID_MAGNIFIER = 611,
|
|
ITEMID_POISON_BOTTLE = 678,
|
|
ITEMID_EMPTY_BOTTLE = 713,
|
|
ITEMID_EMPERIUM = 714,
|
|
ITEMID_RED_GEMSTONE = 716,
|
|
ITEMID_BLUE_GEMSTONE = 717,
|
|
ITEMID_ORIDECON_STONE = 756,
|
|
ITEMID_ALCOHOL = 970,
|
|
ITEMID_ORIDECON = 984,
|
|
ITEMID_ANVIL = 986,
|
|
ITEMID_ORIDECON_ANVIL = 987,
|
|
ITEMID_GOLDEN_ANVIL = 988,
|
|
ITEMID_EMPERIUM_ANVIL = 989,
|
|
ITEMID_BLOODY_RED = 990,
|
|
ITEMID_CRYSTAL_BLUE = 991,
|
|
ITEMID_WIND_OF_VERDURE = 992,
|
|
ITEMID_YELLOW_LIVE = 993,
|
|
ITEMID_FLAME_HEART = 994,
|
|
ITEMID_MISTIC_FROZEN = 995,
|
|
ITEMID_ROUGH_WIND = 996,
|
|
ITEMID_GREAT_NATURE = 997,
|
|
ITEMID_IRON = 998,
|
|
ITEMID_STEEL = 999,
|
|
ITEMID_STAR_CRUMB = 1000,
|
|
ITEMID_IRON_ORE = 1002,
|
|
ITEMID_PHRACON = 1010,
|
|
ITEMID_EMVERETARCON = 1011,
|
|
ITEMID_TRAP = 1065,
|
|
ITEMID_ANGRA_MANYU = 1599,
|
|
ITEMID_PAINT_BRUSH = 6122,
|
|
ITEMID_MAGIC_GEAR_FUEL = 6146,
|
|
ITEMID_NEW_INSURANCE = 6413,
|
|
ITEMID_STRANGE_EMBRYO = 6415,
|
|
ITEMID_BLACKSMITH_BLESSING = 6635,
|
|
ITEMID_STONE = 7049,
|
|
ITEMID_FIRE_BOTTLE = 7135,
|
|
ITEMID_ACID_BOTTLE = 7136,
|
|
ITEMID_MAN_EATER_BOTTLE = 7137,
|
|
ITEMID_MINI_BOTTLE = 7138,
|
|
ITEMID_COATING_BOTTLE = 7139,
|
|
ITEMID_FRAGMENT_OF_CRYSTAL = 7321,
|
|
ITEMID_SKULL_ = 7420,
|
|
ITEMID_TRAP_ALLOY = 7940,
|
|
ITEMID_COOKIE_BAT = 11605,
|
|
ITEMID_MERCENARY_RED_POTION = 12184,
|
|
ITEMID_MERCENARY_BLUE_POTION = 12185,
|
|
ITEMID_NEURALIZER = 12213,
|
|
ITEMID_M_CENTER_POTION = 12241,
|
|
ITEMID_M_AWAKENING_POTION = 12242,
|
|
ITEMID_M_BERSERK_POTION = 12243,
|
|
ITEMID_NOVICE_MAGNIFIER = 12325,
|
|
ITEMID_ANCILLA = 12333,
|
|
ITEMID_REINS_OF_MOUNT = 12622,
|
|
ITEMID_NOBLE_NAMEPLATE = 12705,
|
|
ITEMID_SILVER_BULLET = 13201,
|
|
ITEMID_PURIFICATION_BULLET = 13220,
|
|
ITEMID_SILVER_BULLET_ = 13221,
|
|
ITEMID_INVENTORY_EX_EVT = 25791,
|
|
ITEMID_INVENTORY_EX_DIS = 25792,
|
|
ITEMID_INVENTORY_EX = 25793,
|
|
ITEMID_WL_MB_SG = 100065,
|
|
ITEMID_HOMUNCULUS_SUPPLEMENT = 100371,
|
|
};
|
|
|
|
///Rune Knight
|
|
enum rune_item_list : t_itemid
|
|
{
|
|
ITEMID_NAUTHIZ = 12725,
|
|
ITEMID_RAIDO,
|
|
ITEMID_BERKANA,
|
|
ITEMID_ISA,
|
|
ITEMID_OTHILA,
|
|
ITEMID_URUZ,
|
|
ITEMID_THURISAZ,
|
|
ITEMID_WYRD,
|
|
ITEMID_HAGALAZ,
|
|
ITEMID_LUX_ANIMA = 22540,
|
|
};
|
|
|
|
///Mechanic
|
|
enum mechanic_item_list : t_itemid
|
|
{
|
|
ITEMID_ACCELERATOR = 2800,
|
|
ITEMID_SUICIDAL_DEVICE = 2802,
|
|
ITEMID_SHAPE_SHIFTER,
|
|
ITEMID_COOLING_DEVICE,
|
|
ITEMID_MAGNETIC_FIELD_GENERATOR,
|
|
ITEMID_BARRIER_BUILDER,
|
|
ITEMID_REPAIR_KIT,
|
|
ITEMID_CAMOUFLAGE_GENERATOR,
|
|
ITEMID_HIGH_QUALITY_COOLER,
|
|
ITEMID_SPECIAL_COOLER,
|
|
ITEMID_SCARLET_PTS = 6360,
|
|
ITEMID_INDIGO_PTS,
|
|
ITEMID_YELLOW_WISH_PTS,
|
|
ITEMID_LIME_GREEN_PTS,
|
|
ITEMID_REPAIR_A = 12392,
|
|
ITEMID_REPAIR_B,
|
|
ITEMID_REPAIR_C,
|
|
};
|
|
|
|
///Genetic
|
|
enum genetic_item_list : t_itemid
|
|
{
|
|
ITEMID_SEED_OF_HORNY_PLANT = 6210,
|
|
ITEMID_BLOODSUCK_PLANT_SEED,
|
|
ITEMID_BOMB_MUSHROOM_SPORE,
|
|
ITEMID_HP_INCREASE_POTION_SMALL = 12422,
|
|
ITEMID_HP_INCREASE_POTION_MEDIUM,
|
|
ITEMID_HP_INCREASE_POTION_LARGE,
|
|
ITEMID_SP_INCREASE_POTION_SMALL,
|
|
ITEMID_SP_INCREASE_POTION_MEDIUM,
|
|
ITEMID_SP_INCREASE_POTION_LARGE,
|
|
ITEMID_CONCENTRATED_WHITE_POTION_Z,
|
|
ITEMID_SAVAGE_FULL_ROAST,
|
|
ITEMID_COCKTAIL_WARG_BLOOD,
|
|
ITEMID_MINOR_STEW,
|
|
ITEMID_SIROMA_ICED_TEA,
|
|
ITEMID_DROSERA_HERB_SALAD,
|
|
ITEMID_PETITE_TAIL_NOODLES,
|
|
ITEMID_BLACK_MASS,
|
|
ITEMID_VITATA500,
|
|
ITEMID_CONCENTRATED_CEROMAIN_SOUP,
|
|
ITEMID_CURE_FREE = 12475,
|
|
ITEMID_APPLE_BOMB = 13260,
|
|
ITEMID_COCONUT_BOMB,
|
|
ITEMID_MELON_BOMB,
|
|
ITEMID_PINEAPPLE_BOMB,
|
|
ITEMID_BANANA_BOMB,
|
|
ITEMID_BLACK_LUMP,
|
|
ITEMID_BLACK_HARD_LUMP,
|
|
ITEMID_VERY_HARD_LUMP,
|
|
ITEMID_MYSTERIOUS_POWDER,
|
|
ITEMID_HP_INC_POTS_TO_THROW = 13275,
|
|
ITEMID_HP_INC_POTM_TO_THROW,
|
|
ITEMID_HP_INC_POTL_TO_THROW,
|
|
ITEMID_SP_INC_POTS_TO_THROW,
|
|
ITEMID_SP_INC_POTM_TO_THROW,
|
|
ITEMID_SP_INC_POTL_TO_THROW,
|
|
};
|
|
|
|
///Guillotine Cross
|
|
enum poison_item_list : t_itemid
|
|
{
|
|
ITEMID_PARALYSE = 12717,
|
|
ITEMID_LEECHESEND,
|
|
ITEMID_OBLIVIONCURSE,
|
|
ITEMID_DEATHHURT,
|
|
ITEMID_TOXIN,
|
|
ITEMID_PYREXIA,
|
|
ITEMID_MAGICMUSHROOM,
|
|
ITEMID_VENOMBLEED,
|
|
};
|
|
|
|
///Item job
|
|
enum e_item_job : uint16
|
|
{
|
|
ITEMJ_NONE = 0x00,
|
|
ITEMJ_NORMAL = 0x01,
|
|
ITEMJ_UPPER = 0x02,
|
|
ITEMJ_BABY = 0x04,
|
|
ITEMJ_THIRD = 0x08,
|
|
ITEMJ_THIRD_UPPER = 0x10,
|
|
ITEMJ_THIRD_BABY = 0x20,
|
|
ITEMJ_FOURTH = 0x40,
|
|
ITEMJ_MAX = 0xFF,
|
|
|
|
ITEMJ_ALL_UPPER = ITEMJ_UPPER | ITEMJ_THIRD_UPPER | ITEMJ_FOURTH,
|
|
ITEMJ_ALL_BABY = ITEMJ_BABY | ITEMJ_THIRD_BABY,
|
|
ITEMJ_ALL_THIRD = ITEMJ_THIRD | ITEMJ_THIRD_UPPER | ITEMJ_THIRD_BABY,
|
|
|
|
#ifdef RENEWAL
|
|
ITEMJ_ALL = ITEMJ_NORMAL | ITEMJ_UPPER | ITEMJ_BABY | ITEMJ_THIRD | ITEMJ_THIRD_UPPER | ITEMJ_THIRD_BABY | ITEMJ_FOURTH,
|
|
#else
|
|
ITEMJ_ALL = ITEMJ_NORMAL | ITEMJ_UPPER | ITEMJ_BABY,
|
|
#endif
|
|
};
|
|
|
|
#define AMMO_TYPE_ALL ((1<<MAX_AMMO_TYPE)-1)
|
|
|
|
enum e_random_item_group {
|
|
IG_BLUEBOX = 1,
|
|
IG_VIOLETBOX,
|
|
IG_CARDALBUM,
|
|
IG_GIFTBOX,
|
|
IG_SCROLLBOX,
|
|
IG_FINDINGORE,
|
|
IG_COOKIEBAG,
|
|
IG_FIRSTAID,
|
|
IG_HERB,
|
|
IG_FRUIT,
|
|
IG_MEAT,
|
|
IG_CANDY,
|
|
IG_JUICE,
|
|
IG_FISH,
|
|
IG_BOX,
|
|
IG_GEMSTONE,
|
|
IG_RESIST,
|
|
IG_ORE,
|
|
IG_FOOD,
|
|
IG_RECOVERY,
|
|
IG_MINERAL,
|
|
IG_TAMING,
|
|
IG_SCROLL,
|
|
IG_QUIVER,
|
|
IG_MASK,
|
|
IG_ACCESORY,
|
|
IG_JEWEL,
|
|
IG_GIFTBOX_1,
|
|
IG_GIFTBOX_2,
|
|
IG_GIFTBOX_3,
|
|
IG_GIFTBOX_4,
|
|
IG_EGGBOY,
|
|
IG_EGGGIRL,
|
|
IG_GIFTBOXCHINA,
|
|
IG_LOTTOBOX,
|
|
IG_FOODBAG,
|
|
IG_POTION,
|
|
IG_REDBOX_2,
|
|
IG_BLEUBOX,
|
|
IG_REDBOX,
|
|
IG_GREENBOX,
|
|
IG_YELLOWBOX,
|
|
IG_OLDGIFTBOX,
|
|
IG_MAGICCARDALBUM,
|
|
IG_HOMETOWNGIFT,
|
|
IG_MASQUERADE,
|
|
IG_TRESURE_BOX_WOE,
|
|
IG_MASQUERADE_2,
|
|
IG_EASTER_SCROLL,
|
|
IG_PIERRE_TREASUREBOX,
|
|
IG_CHERISH_BOX,
|
|
IG_CHERISH_BOX_ORI,
|
|
IG_LOUISE_COSTUME_BOX,
|
|
IG_XMAS_GIFT,
|
|
IG_FRUIT_BASKET,
|
|
IG_IMPROVED_COIN_BAG,
|
|
IG_INTERMEDIATE_COIN_BAG,
|
|
IG_MINOR_COIN_BAG,
|
|
IG_S_GRADE_COIN_BAG,
|
|
IG_A_GRADE_COIN_BAG,
|
|
IG_ADVANCED_WEAPONS_BOX,
|
|
IG_SPLENDID_BOX,
|
|
IG_SPLENDID_BOX2,
|
|
IG_CARDALBUM_ARMOR,
|
|
IG_CARDALBUM_HELM,
|
|
IG_CARDALBUM_ACC,
|
|
IG_CARDALBUM_SHOES,
|
|
IG_CARDALBUM_SHIELD,
|
|
IG_CARDALBUM_WEAPON,
|
|
IG_CARDALBUM_GARMENT,
|
|
IG_FLAMEL_CARD,
|
|
IG_SPECIAL_BOX,
|
|
IG_TRESURE_BOX_WOE_,
|
|
IG_RWC_PARTI_BOX,
|
|
IG_RWC_FINAL_COMP_BOX,
|
|
IG_GIFT_BUNDLE,
|
|
IG_CARACAS_RING_BOX,
|
|
IG_CRUMPLED_PAPER,
|
|
IG_SOLO_GIFT_BASKET,
|
|
IG_COUPLE_EVENT_BASKET,
|
|
IG_GM_WARP_BOX,
|
|
IG_FORTUNE_COOKIE1,
|
|
IG_FORTUNE_COOKIE2,
|
|
IG_FORTUNE_COOKIE3,
|
|
IG_NEW_GIFT_ENVELOPE,
|
|
IG_PASSION_FB_HAT_BOX,
|
|
IG_COOL_FB_HAT_BOX,
|
|
IG_VICTORY_FB_HAT_BOX,
|
|
IG_GLORY_FB_HAT_BOX,
|
|
IG_PASSION_HAT_BOX2,
|
|
IG_COOL_HAT_BOX2,
|
|
IG_VICTORY_HAT_BOX2,
|
|
IG_ASPERSIO_5_SCROLL_BOX,
|
|
IG_PET_EGG_SCROLL_BOX1,
|
|
IG_PET_EGG_SCROLL_BOX2,
|
|
IG_PET_EGG_SCROLL1,
|
|
IG_PET_EGG_SCROLL2,
|
|
IG_PET_EGG_SCROLL_BOX3,
|
|
IG_PET_EGG_SCROLL_BOX4,
|
|
IG_PET_EGG_SCROLL_BOX5,
|
|
IG_PET_EGG_SCROLL3,
|
|
IG_PET_EGG_SCROLL4,
|
|
IG_PET_EGG_SCROLL5,
|
|
IG_INFILTRATOR_BOX,
|
|
IG_MURAMASA_BOX,
|
|
IG_EXCALIBUR_BOX,
|
|
IG_COMBAT_KNIFE_BOX,
|
|
IG_COUNTER_DAGGER_BOX,
|
|
IG_KAISER_KNUCKLE_BOX,
|
|
IG_POLE_AXE_BOX,
|
|
IG_MIGHTY_STAFF_BOX,
|
|
IG_RIGHT_EPSILON_BOX,
|
|
IG_BALISTAR_BOX,
|
|
IG_DIARY_OF_GREAT_SAGE_BOX,
|
|
IG_ASURA_BOX,
|
|
IG_APPLE_OF_ARCHER_BOX,
|
|
IG_BUNNY_BAND_BOX,
|
|
IG_SAHKKAT_BOX,
|
|
IG_LORD_CIRCLET_BOX,
|
|
IG_ELVEN_EARS_BOX,
|
|
IG_STEEL_FLOWER_BOX,
|
|
IG_CRITICAL_RING_BOX,
|
|
IG_EARRING_BOX,
|
|
IG_RING_BOX,
|
|
IG_NECKLACE_BOX,
|
|
IG_GLOVE_BOX,
|
|
IG_BROOCH_BOX,
|
|
IG_ROSARY_BOX,
|
|
IG_SAFETY_RING_BOX,
|
|
IG_VESPER_CORE01_BOX,
|
|
IG_VESPER_CORE02_BOX,
|
|
IG_VESPER_CORE03_BOX,
|
|
IG_VESPER_CORE04_BOX,
|
|
IG_PET_EGG_SCROLL_BOX6,
|
|
IG_PET_EGG_SCROLL_BOX7,
|
|
IG_PET_EGG_SCROLL_BOX8,
|
|
IG_PET_EGG_SCROLL_BOX9,
|
|
IG_PET_EGG_SCROLL_BOX10,
|
|
IG_PET_EGG_SCROLL_BOX11,
|
|
IG_PET_EGG_SCROLL6,
|
|
IG_PET_EGG_SCROLL7,
|
|
IG_PET_EGG_SCROLL8,
|
|
IG_PET_EGG_SCROLL9,
|
|
IG_PET_EGG_SCROLL10,
|
|
IG_PET_EGG_SCROLL11,
|
|
IG_CP_HELM_SCROLL_BOX,
|
|
IG_CP_SHIELD_SCROLL_BOX,
|
|
IG_CP_ARMOR_SCROLL_BOX,
|
|
IG_CP_WEAPON_SCROLL_BOX,
|
|
IG_REPAIR_SCROLL_BOX,
|
|
IG_SUPER_PET_EGG1,
|
|
IG_SUPER_PET_EGG2,
|
|
IG_SUPER_PET_EGG3,
|
|
IG_SUPER_PET_EGG4,
|
|
IG_SUPER_CARD_PET_EGG1,
|
|
IG_SUPER_CARD_PET_EGG2,
|
|
IG_SUPER_CARD_PET_EGG3,
|
|
IG_SUPER_CARD_PET_EGG4,
|
|
IG_VIGORGRA_PACKAGE1,
|
|
IG_VIGORGRA_PACKAGE2,
|
|
IG_VIGORGRA_PACKAGE3,
|
|
IG_VIGORGRA_PACKAGE4,
|
|
IG_VIGORGRA_PACKAGE5,
|
|
IG_VIGORGRA_PACKAGE6,
|
|
IG_VIGORGRA_PACKAGE7,
|
|
IG_VIGORGRA_PACKAGE8,
|
|
IG_VIGORGRA_PACKAGE9,
|
|
IG_VIGORGRA_PACKAGE10,
|
|
IG_VIGORGRA_PACKAGE11,
|
|
IG_VIGORGRA_PACKAGE12,
|
|
IG_PET_EGG_SCROLL12,
|
|
IG_PET_EGG_SCROLL13,
|
|
IG_PET_EGG_SCROLL14,
|
|
IG_SUPER_PET_EGG5,
|
|
IG_SUPER_PET_EGG6,
|
|
IG_SUPER_PET_EGG7,
|
|
IG_SUPER_PET_EGG8,
|
|
IG_PET_EGG_SCROLL_E,
|
|
IG_RAMEN_HAT_BOX,
|
|
IG_MYSTERIOUS_TRAVEL_SACK1,
|
|
IG_MYSTERIOUS_TRAVEL_SACK2,
|
|
IG_MYSTERIOUS_TRAVEL_SACK3,
|
|
IG_MYSTERIOUS_TRAVEL_SACK4,
|
|
IG_MAGICIAN_CARD_BOX,
|
|
IG_ACOLYTE_CARD_BOX,
|
|
IG_ARCHER_CARD_BOX,
|
|
IG_SWORDMAN_CARD_BOX,
|
|
IG_THIEF_CARD_BOX,
|
|
IG_MERCHANT_CARD_BOX,
|
|
IG_HARD_CORE_SET_BOX,
|
|
IG_KITTY_SET_BOX,
|
|
IG_SOFT_CORE_SET_BOX,
|
|
IG_DEVIRUCHI_SET_BOX,
|
|
IG_MVP_HUNT_BOX,
|
|
IG_BREWING_BOX,
|
|
IG_XMAS_PET_SCROLL,
|
|
IG_LUCKY_SCROLL08,
|
|
IG_BR_SWORDPACKAGE,
|
|
IG_BR_MAGEPACKAGE,
|
|
IG_BR_ACOLPACKAGE,
|
|
IG_BR_ARCHERPACKAGE,
|
|
IG_BR_MERPACKAGE,
|
|
IG_BR_THIEFPACKAGE,
|
|
IG_ACIDBOMB_10_BOX,
|
|
IG_BASIC_SIEGE_SUPPLY_BOX,
|
|
IG_ADV_SIEGE_SUPPLY_BOX,
|
|
IG_ELITE_SIEGE_SUPPLY_BOX,
|
|
IG_SAKURA_SCROLL,
|
|
IG_BEHOLDER_RING_BOX,
|
|
IG_HALLOW_RING_BOX,
|
|
IG_CLAMOROUS_RING_BOX,
|
|
IG_CHEMICAL_RING_BOX,
|
|
IG_INSECTICIDE_RING_BOX,
|
|
IG_FISHER_RING_BOX,
|
|
IG_DECUSSATE_RING_BOX,
|
|
IG_BLOODY_RING_BOX,
|
|
IG_SATANIC_RING_BOX,
|
|
IG_DRAGOON_RING_BOX,
|
|
IG_ANGEL_SCROLL,
|
|
IG_DEVIL_SCROLL,
|
|
IG_SURPRISE_SCROLL,
|
|
IG_JULY7_SCROLL,
|
|
IG_BACSOJIN_SCROLL,
|
|
IG_ANIMAL_SCROLL,
|
|
IG_HEART_SCROLL,
|
|
IG_NEW_YEAR_SCROLL,
|
|
IG_VALENTINE_PLEDGE_BOX,
|
|
IG_OX_TAIL_SCROLL,
|
|
IG_BUDDAH_SCROLL,
|
|
IG_EVIL_INCARNATION,
|
|
IG_CLOVER_BOX_MOUTH,
|
|
IG_MOUTH_BUBBLE_GUM_BOX,
|
|
IG_CLOVER_BOX_MOUTH2,
|
|
IG_CLOVER_BOX_MOUTH4,
|
|
IG_BGUM_BOX_IN_MOUTH2,
|
|
IG_BGUM_BOX_IN_MOUTH4,
|
|
IG_TW_OCTOBER_SCROLL,
|
|
IG_MY_SCROLL1,
|
|
IG_TW_NOV_SCROLL,
|
|
IG_MY_SCROLL2,
|
|
IG_PR_RESET_STONE_BOX,
|
|
IG_FPR_RESET_STONE_BOX,
|
|
IG_MAJESTIC_DEVIL_SCROLL,
|
|
IG_LIFE_RIBBON_BOX,
|
|
IG_LIFE_RIBBON_BOX2,
|
|
IG_LIFE_RIBBON_BOX3,
|
|
IG_MAGIC_CANDY_BOX10,
|
|
IG_RWC2010_SUITCASEA,
|
|
IG_RWC2010_SUITCASEB,
|
|
IG_SAGITTARIUS_SCROLL,
|
|
IG_SAGITTARIUS_SCR_BOX,
|
|
IG_SAGITTAR_DIADEM_SCROLL,
|
|
IG_SAGITTAR_DI_SCROLL_BOX,
|
|
IG_CAPRI_CROWN_SCROLL,
|
|
IG_CAPRI_CROWN_SCROLL_BOX,
|
|
IG_CAPRICON_DI_SCROLL,
|
|
IG_CAPRICON_DI_SCROLL_BOX,
|
|
IG_AQUARIUS_DIADEM_SCROLL,
|
|
IG_AQUARIUS_DI_SCROLL_BOX,
|
|
IG_LOVELY_AQUARIUS_SCROLL,
|
|
IG_LOVELY_AQUARIUS_BOX,
|
|
IG_PISCES_DIADEM_SCROLL,
|
|
IG_PISCES_DIADEM_BOX,
|
|
IG_ENERGETIC_PISCES_SCROLL,
|
|
IG_ENERGETIC_PISCES_BOX,
|
|
IG_ARIES_SCROLL,
|
|
IG_ARIES_SCROLL_BOX,
|
|
IG_BOARDING_HALTER_BOX,
|
|
IG_TAURUS_DIADEM_SCROLL,
|
|
IG_TAURUS_DI_SCROLL_BOX,
|
|
IG_UMBALA_SPIRIT_BOX2,
|
|
IG_F_UMBALA_SPIRIT_BOX2,
|
|
IG_TAURUS_CROWN_SCROLL,
|
|
IG_TAURUS_CROWN_SCROLL_BOX,
|
|
IG_GEMI_DIADEM_SCROLL,
|
|
IG_GEMI_DIADEM_SCROLL_BOX,
|
|
IG_SUPER_PET_EGG1_2,
|
|
IG_SUPER_PET_EGG4_2,
|
|
IG_FIRE_BRAND_BOX,
|
|
IG_BR_INDEPENDENCE_SCROLL,
|
|
IG_ALL_IN_ONE_RING_BOX,
|
|
IG_GEMI_CROWN_SCROLL,
|
|
IG_GEMI_CROWN_SCROLL_BOX,
|
|
IG_RWC_SPECIAL_SCROLL,
|
|
IG_RWC_LIMITED_SCROLL,
|
|
IG_ASGARD_SCROLL,
|
|
IG_MS_CANCER_SCROLL,
|
|
IG_RWC_SUPER_SCROLL,
|
|
IG_LEO_SCROLL,
|
|
IG_MS_VIRGO_SCROLL,
|
|
IG_LUCKY_EGG_C6,
|
|
IG_LIBRA_SCROLL,
|
|
IG_HALLO_SCROLL,
|
|
IG_MS_SCORPIO_SCROLL,
|
|
IG_TCG_CARD_SCROLL,
|
|
IG_BOITATA_SCROLL,
|
|
IG_LUCKY_EGG_C2,
|
|
IG_LUCKY_EGG_C6_,
|
|
IG_LUCKY_EGG_C9,
|
|
IG_LUCKY_EGG_C7,
|
|
IG_LUCKY_EGG_C8,
|
|
IG_LUCKY_EGG_C10,
|
|
IG_WIND_TYPE_SCROLL,
|
|
IG_LUCKY_EGG_C3,
|
|
IG_LUCKY_EGG_C4,
|
|
IG_LUCKY_EGG_C5,
|
|
IG_WEATHER_REPORT_BOX,
|
|
IG_COMIN_ACTOR_BOX,
|
|
IG_HEN_SET_BOX,
|
|
IG_LUCKY_EGG_C,
|
|
IG_WATER_TYPE_SCROLL,
|
|
IG_EARTH_TYPE_SCROLL,
|
|
IG_EARTH_TYPE_SCROLL_,
|
|
IG_SPLASH_SCROLL,
|
|
IG_VOCATION_SCROLL,
|
|
IG_WISDOM_SCROLL,
|
|
IG_PATRON_SCROLL,
|
|
IG_HEAVEN_SCROLL,
|
|
IG_TW_AUG_SCROLL,
|
|
IG_TW_NOV_SCROLL2,
|
|
IG_ILLUSION_NOTHING,
|
|
IG_TW_SEP_SCROLL,
|
|
IG_FLAME_LIGHT,
|
|
IG_TW_RAINBOW_SCROLL,
|
|
IG_TW_RED_SCROLL,
|
|
IG_TW_ORANGE_SCROLL,
|
|
IG_TW_YELLOW_SCROLL,
|
|
IG_SCROLL_OF_DEATH,
|
|
IG_SCROLL_OF_LIFE,
|
|
IG_SCROLL_OF_MAGIC,
|
|
IG_SCROLL_OF_THEWS,
|
|
IG_SCROLL_OF_DARKNESS,
|
|
IG_SCROLL_OF_HOLINESS,
|
|
IG_HORNED_SCROLL,
|
|
IG_MERCURY_SCROLL,
|
|
IG_CHALLENGE_KIT,
|
|
IG_TW_APRIL_SCROLL,
|
|
IG_TW_OCTOBER_SCROLL_,
|
|
IG_SUMMER_SCROLL3,
|
|
IG_C_WING_OF_FLY_3DAY_BOX,
|
|
IG_RWC_2012_SET_BOX,
|
|
IG_EX_DEF_POTION_BOX,
|
|
IG_RWC_SCROLL_2012,
|
|
IG_OLD_COIN_POCKET,
|
|
IG_HIGH_COIN_POCKET,
|
|
IG_MID_COIN_POCKET,
|
|
IG_LOW_COIN_POCKET,
|
|
IG_SGRADE_POCKET,
|
|
IG_AGRADE_POCKET,
|
|
IG_BGRADE_POCKET,
|
|
IG_CGRADE_POCKET,
|
|
IG_DGRADE_POCKET,
|
|
IG_EGRADE_POCKET,
|
|
IG_PTOTECTION_SEAGOD_BOX,
|
|
IG_HAIRTAIL_BOX1,
|
|
IG_HAIRTAIL_BOX2,
|
|
IG_SPEARFISH_BOX1,
|
|
IG_SPEARFISH_BOX2,
|
|
IG_SAUREL_BOX1,
|
|
IG_SAUREL_BOX2,
|
|
IG_TUNA_BOX1,
|
|
IG_TUNA_BOX2,
|
|
IG_MALANG_CRAB_BOX1,
|
|
IG_MALANG_CRAB_BOX2,
|
|
IG_BRINDLE_EEL_BOX1,
|
|
IG_BRINDLE_EEL_BOX2,
|
|
IG_PTOTECTION_SEAGOD_BOX2,
|
|
IG_PTOTECTION_SEAGOD_BOX3,
|
|
IG_OCTO_HSTICK_BOX,
|
|
IG_OCTO_HSTICK_BOX2,
|
|
IG_OCTO_HSTICK_BOX3,
|
|
IG_SILVERVINE_FRUIT_BOX10,
|
|
IG_SILVERVINE_FRUIT_BOX40,
|
|
IG_SILVERVINE_FRUIT_BOX4,
|
|
IG_MALANG_WOE_ENCARD_BOX,
|
|
IG_XMAS_BLESS,
|
|
IG_FIRE_TYPE_SCROLL,
|
|
IG_BLUE_SCROLL,
|
|
IG_GOOD_STUDENT_GIFT_BOX,
|
|
IG_BAD_STUDENT_GIFT_BOX,
|
|
IG_INDIGO_SCROLL,
|
|
IG_VIOLET_SCROLL,
|
|
IG_BI_HWANG_SCROLL,
|
|
IG_JUNG_BI_SCROLL,
|
|
IG_JE_UN_SCROLL,
|
|
IG_YONG_KWANG_SCROLL,
|
|
IG_HALLOWEEN_G_BOX,
|
|
IG_SOLO_CHRISTMAS_GIFT,
|
|
IG_SG_WEAPON_SUPPLY_BOX,
|
|
IG_CANDY_HOLDER,
|
|
IG_LUCKY_BAG,
|
|
IG_HOLY_EGG_2,
|
|
IG_ADVENTURER_RETURNS_SUPPORT_BOX,
|
|
IG_SUPPORT_PACKAGE,
|
|
IG_SUPPORT_PACKAGE_10,
|
|
IG_EVENT_ALMIGHTY_BOX,
|
|
IG_EVENT_ALMIGHTY_BOX_100,
|
|
IG_LOTTOBOX1,
|
|
IG_LOTTOBOX2,
|
|
IG_LOTTOBOX3,
|
|
IG_LOTTOBOX4,
|
|
IG_LOTTOBOX5,
|
|
IG_SUPPORT_PACKAGE_III,
|
|
IG_SUPPORT_PACKAGE_III_10,
|
|
IG_UNLIMITED_BOX,
|
|
IG_UNLIMITED_BOX_10,
|
|
IG_UNLIMITED_BOX_II,
|
|
IG_UNLIMITED_BOX_II_10,
|
|
IG_THREE_MASTER_PACKAGE_III,
|
|
IG_THREE_MASTER_PACKAGE_III_10,
|
|
IG_2013_RWC_SCROLL,
|
|
IG_SUPPORT_PACKAGE_II,
|
|
IG_SUPPORT_PACKAGE_II_10,
|
|
IG_LEVEL_UP_BOX100,
|
|
IG_LEVEL_UP_BOX120,
|
|
IG_LEVEL_UP_BOX130,
|
|
IG_LEVEL_UP_BOX140,
|
|
IG_LEVEL_UP_BOX150,
|
|
IG_LEVEL_UP_BOX160,
|
|
IG_GIFT_BUFF_SET,
|
|
IG_LUCKY_SILVERVINE_FRUIT_BOX_III10,
|
|
IG_LUCKY_SILVERVINE_FRUIT_BOX_III110,
|
|
IG_OLD_ORE_BOX,
|
|
IG_BLESSING_LUCKY_SCROLL,
|
|
IG_SOGRAT_LUCKY_SCROLL,
|
|
IG_GARNET_LUCKY_SCROLL,
|
|
IG_AMORA_LUCKY_SCROLL,
|
|
IG_VENUS_LUCKY_SCROLL,
|
|
IG_ERZULIE_LUCKY_SCROLL,
|
|
IG_MAJESTIC_LUCKY_SCROLL,
|
|
IG_EPIC_HEROES_LUCKY_EGG,
|
|
IG_HERO_MIDGARD_EGG,
|
|
IG_IMORTAL_MIDGARD_SCROLL,
|
|
IG_TW_13Y_LUCKY_EGG_06,
|
|
IG_HAPPY_TIME_SCROLL,
|
|
IG_TIME_TRAVEL_SCROLL,
|
|
IG_SOLARIS_FESTIVAL_SCROLL,
|
|
IG_MIDGARD_FES_SCROLL,
|
|
IG_MIDGARD_SCROLL,
|
|
IG_SWEET_MIDGARD_SCROLL,
|
|
IG_WINTER_MIDGARD_SCROLL,
|
|
IG_SPRING_FESTIVAL_SCROLL,
|
|
IG_IDRO10TH_SCROLL,
|
|
IG_REQUIEM_SCROLL,
|
|
IG_HOLY_SPIRIT_SCROLL,
|
|
IG_GARUDA_SCROLL,
|
|
IG_THANKS_GIVING_SCROLL,
|
|
IG_IDN_LEGEND_HERO_SCROLL,
|
|
IG_BLESSING_MIDGARD_SCROLL,
|
|
IG_CHRONOSIAN_LUCKY_SCROLL,
|
|
IG_SANCTUARY_LUCKY_SCROLL,
|
|
IG_CYBORG_LUCKY_SCROLL,
|
|
IG_UNDINE_LUCKY_SCROLL,
|
|
IG_GOD_MATERIAL_BOX,
|
|
IG_COSTAMA_EGG18,
|
|
IG_COSTAMA_EGG19,
|
|
IG_FLOWER_BLOSSOM_SCROLL,
|
|
IG_COSTAMA_EGG24,
|
|
IG_SMITHY_LUCKY_SCROLL,
|
|
IG_GANYMEDE_LUCKY_SCROLL,
|
|
IG_LASTANGEL_LUCKYSCROLL,
|
|
IG_VALKYRIE_LUCKY_SCROLL,
|
|
IG_SPLASH_RAINBOW_LUCKY_SCROLL,
|
|
IG_SHAPESHIFTER_COSTUME,
|
|
IG_JULY_LUCKY_SCROLL,
|
|
IG_COSTAMA_EGG23,
|
|
IG_COSTAMA_EGG28,
|
|
IG_MIDGARD_LUCKY_SCROLL,
|
|
IG_BLESSING_SCARLET_SCROLL,
|
|
IG_COSTAMA_EGG29,
|
|
IG_INK_BALL,
|
|
IG_SOMETHING_CANDY_HOLDER,
|
|
IG_SHINING_EGG,
|
|
IG_AGUST_LUCKY_SCROLL,
|
|
IG_ELEMENT,
|
|
IG_POISON,
|
|
IG_CASH_FOOD,
|
|
IG_BOMB,
|
|
IG_THROWABLE,
|
|
IG_MERCENARY,
|
|
IG_NOIVE_BOX,
|
|
IG_VALERIAN_SCROLL,
|
|
IG_IMMORTAL_EGG,
|
|
IG_SAPPHIRE_EGG,
|
|
IG_IDN_HEART_SCROLL,
|
|
IG_IDN_WISDOM_EGG,
|
|
IG_CHRISTMAS_BOX,
|
|
IG_SPECIAL_CHRISTMAS_BOX,
|
|
IG_SANTA_GIFT,
|
|
IG_PRIZEOFHERO,
|
|
IG_PRIVATE_AIRSHIP,
|
|
IG_TOKEN_OF_SIEGFRIED,
|
|
IG_ENCHANT_STONE_BOX,
|
|
IG_ENCHANT_STONE_BOX2,
|
|
IG_ENCHANT_STONE_BOX3,
|
|
IG_ENCHANT_STONE_BOX4,
|
|
IG_ENCHANT_STONE_BOX5,
|
|
IG_ENCHANT_STONE_BOX6,
|
|
IG_ENCHANT_STONE_BOX7,
|
|
IG_ENCHANT_STONE_BOX8,
|
|
IG_ENCHANT_STONE_BOX9,
|
|
IG_ENCHANT_STONE_BOX10,
|
|
IG_ENCHANT_STONE_BOX11,
|
|
IG_ENCHANT_STONE_BOX12,
|
|
IG_ENCHANT_STONE_BOX13,
|
|
IG_ENCHANT_STONE_BOX14,
|
|
IG_ENCHANT_STONE_BOX15,
|
|
IG_ENCHANT_STONE_BOX16,
|
|
IG_ENCHANT_STONE_BOX17,
|
|
IG_ENCHANT_STONE_BOX18,
|
|
IG_ENCHANT_STONE_BOX19,
|
|
IG_ENCHANT_STONE_BOX20,
|
|
IG_ENCHANT_STONE_BOX21,
|
|
IG_XMAS_PACKAGE_14,
|
|
IG_EASTER_EGG,
|
|
IG_PITAPAT_BOX,
|
|
IG_HAPPY_BOX_J,
|
|
IG_CLASS_SHADOW_CUBE,
|
|
IG_SEALED_SCROLL,
|
|
IG_SQUAD_PRIZE1,
|
|
IG_SQUAD_PRIZE2,
|
|
IG_LI_NYANGVINE_BOX1_26,
|
|
IG_LI_NYANGVINE_BOX2_26,
|
|
IG_LI_NYANGVINE_BOX3_26,
|
|
IG_ENCHANT_STONE_BOX26,
|
|
IG_THIRD_JOB_STONE_GARMENT_BOX,
|
|
IG_THIRD_JOB_STONE_GARMENT_BOX2,
|
|
IG_THIRD_JOB_STONE_TOP_BOX,
|
|
IG_THIRD_JOB_STONE_TOP_BOX2,
|
|
IG_THIRD_JOB_STONE_MIDDLE_BOX,
|
|
IG_THIRD_JOB_STONE_MIDDLE_BOX2,
|
|
IG_THIRD_JOB_STONE_BOTTOM_BOX,
|
|
IG_THIRD_JOB_STONE_BOTTOM_BOX2,
|
|
IG_SHADOW_EXCHANGE_BOX,
|
|
IG_GUNSLINGER_ENCHANT,
|
|
IG_ENCHANTSTONE_RECIPE,
|
|
IG_PET_EGG_BOX,
|
|
IG_COSTUME_EXCHANGE_BOX,
|
|
IG_FAN_UPGRADE_KIT,
|
|
IG_SUIT_UPGRADE_KIT,
|
|
IG_SCROLL_OF_FALLEN_ANGEL_WINGS,
|
|
IG_CLASS_SHADOW_BOX_WEAPON,
|
|
IG_CLASS_SHADOW_BOX_ARMOR,
|
|
IG_CLASS_SHADOW_BOX_SHOES,
|
|
IG_CLASS_SHADOW_BOX_SHIELD,
|
|
IG_CLASS_SHADOW_BOX_PENDANT,
|
|
IG_CLASS_SHADOW_BOX_EARRING,
|
|
IG_STATUSSHADOW_MIX,
|
|
IG_GEMSTONESHADOW_MIX,
|
|
IG_BEARERSSHADOW_MIX,
|
|
IG_COMPOSESHADOW_MIX,
|
|
IG_RACESHADOW_MIX,
|
|
IG_CANDY_BAG_SCROLL_MELEE,
|
|
IG_CANDY_BAG_SCROLL_RANGE,
|
|
IG_CANDY_BAG_SCROLL_MAGIC,
|
|
IG_BOOSTER_AMPLIFIER,
|
|
IG_MAGICAL_CAT_HAND,
|
|
IG_INFINITYSHADOW_MIX,
|
|
IG_SILVER_STATUE,
|
|
IG_PHYSICALMAGICAL_MIX,
|
|
IG_IMMUNEDATHENA_MIX,
|
|
IG_HARDCHAMPTION_MIX,
|
|
IG_KINGBIRDANCIENT_MIX,
|
|
IG_CRITICALHIT_MIX,
|
|
IG_BS_ITEM_M_S_2,
|
|
IG_BS_ITEM_M_S_8,
|
|
IG_BS_ITEM_M_S_10,
|
|
IG_BS_ITEM_M_S_11,
|
|
IG_BS_ITEM_M_S_34,
|
|
IG_BS_ITEM_M_S_41,
|
|
IG_BS_ITEM_M_S_42,
|
|
IG_BS_ITEM_M_S_43,
|
|
IG_BS_ITEM_M_S_44,
|
|
IG_BS_SHA_M_S_1,
|
|
IG_BS_SHA_M_S_17,
|
|
IG_BS_SHA_M_S_18,
|
|
IG_BS_SHA_M_S_19,
|
|
IG_BS_SHA_M_S_20,
|
|
IG_BS_ITEM_M_S_4,
|
|
IG_BS_ITEM_M_S_6,
|
|
IG_BS_ITEM_M_S_7,
|
|
IG_BS_ITEM_M_S_12,
|
|
IG_BS_ITEM_M_S_13,
|
|
IG_BS_ITEM_M_S_15,
|
|
IG_BS_ITEM_M_S_28,
|
|
IG_BS_ITEM_M_S_29,
|
|
IG_BS_ITEM_M_S_31,
|
|
IG_BS_ITEM_M_S_32,
|
|
IG_BS_ITEM_M_S_33,
|
|
IG_BS_ITEM_M_S_36,
|
|
IG_BS_ITEM_M_S_37,
|
|
IG_BS_ITEM_M_S_38,
|
|
IG_BS_ITEM_M_S_39,
|
|
IG_BS_ITEM_M_S_40,
|
|
IG_BS_ITEM_M_S_45,
|
|
IG_BS_ITEM_M_S_46,
|
|
IG_BS_ITEM_M_S_47,
|
|
IG_BS_ITEM_M_S_48,
|
|
IG_BS_ITEM_M_S_49,
|
|
IG_BS_ITEM_M_S_50,
|
|
IG_BS_SHA_M_S_5,
|
|
IG_BS_SHA_M_S_6,
|
|
IG_BS_SHA_M_S_7,
|
|
IG_BS_SHA_M_S_8,
|
|
IG_BS_SHA_M_S_13,
|
|
IG_BS_SHA_M_S_15,
|
|
IG_BS_SHA_M_S_16,
|
|
IG_BS_SHA_M_S_23,
|
|
IG_BS_ITEM_M_S_5,
|
|
IG_BS_ITEM_M_S_9,
|
|
IG_BS_ITEM_M_S_14,
|
|
IG_BS_ITEM_M_S_16,
|
|
IG_BS_ITEM_M_S_17,
|
|
IG_BS_ITEM_M_S_19,
|
|
IG_BS_ITEM_M_S_27,
|
|
IG_BS_ITEM_M_S_35,
|
|
IG_BS_SHA_M_S_9,
|
|
IG_BS_SHA_M_S_10,
|
|
IG_BS_SHA_M_S_11,
|
|
IG_BS_SHA_M_S_21,
|
|
IG_BS_ITEM_M_S_1,
|
|
IG_BS_ITEM_M_S_3,
|
|
IG_BS_ITEM_M_S_18,
|
|
IG_BS_ITEM_M_S_20,
|
|
IG_BS_ITEM_M_S_21,
|
|
IG_BS_ITEM_M_S_22,
|
|
IG_BS_ITEM_M_S_23,
|
|
IG_BS_ITEM_M_S_24,
|
|
IG_BS_ITEM_M_S_25,
|
|
IG_BS_ITEM_M_S_26,
|
|
IG_BS_ITEM_M_S_30,
|
|
IG_BS_SHA_M_S_3,
|
|
IG_BS_SHA_M_S_4,
|
|
IG_BS_SHA_M_S_12,
|
|
IG_BS_SHA_M_S_14,
|
|
IG_BS_SHA_M_S_24,
|
|
IG_BS_SHA_M_S_25,
|
|
IG_BS_ITEM_M_S_51,
|
|
IG_ENCHANTSTONE_RECIPE_9M,
|
|
IG_IDTEST_SPECIAL,
|
|
IG_PERFECTSIZE_MIX,
|
|
IG_MAGICPIERCING_MIX,
|
|
IG_PIERCING_MIX,
|
|
IG_HASTY_MIX,
|
|
IG_ENCHANTSTONE_RECIPE_4M,
|
|
IG_SHADOW_CUBE,
|
|
IG_SHADOW_CUBE_PENDANT,
|
|
IG_SHADOW_CUBE_EARING,
|
|
IG_ANGELPORING_BOX,
|
|
IG_HELM_OF_FAITH_BOX,
|
|
IG_2022_LUNARNEWYEARS_BOX,
|
|
IG_2020_REWARD_BOX,
|
|
IG_COSTUME_MILE_PACK_26_1,
|
|
IG_COSTUME_MILE_PACK_26_2,
|
|
IG_COSTUME_MILE_PACK_26_3,
|
|
IG_EP17_1_SPC01,
|
|
IG_EP17_1_SPC02,
|
|
IG_EP17_1_SPC03,
|
|
IG_EP17_1_SPC04,
|
|
IG_STABILITYSHADOW_MIX,
|
|
IG_BS_SHA_M_S_2,
|
|
IG_BS_SHA_M_S_22,
|
|
IG_SLD_CARD_RECIPE,
|
|
IG_R_BEARERSSHADOW_MIX,
|
|
IG_M_BLITZSHADOW_MIX,
|
|
IG_RELOADSHADOW_MIX,
|
|
IG_SPELLCASTERSHADOW_MIX,
|
|
IG_MAGICALSHADOW_MIX,
|
|
IG_PHYSICALSHADOW_MIX,
|
|
IG_MAJORAUTOSPELL_MIX,
|
|
IG_ABSORBSHADOW_MIX,
|
|
IG_TRUE_GEMSHADOW_MIX,
|
|
IG_MAMMOTH_MIX,
|
|
IG_FULLTEMPSHADOW_MIX,
|
|
IG_FULLPENESHADOW_MIX,
|
|
IG_REMODEL_HERO_BOOTS,
|
|
IG_ORIENTAL_SWORD_CUBE,
|
|
IG_DRAGONIC_SLAYER_CUBE,
|
|
IG_SHIVER_KATAR_K_CUBE,
|
|
IG_BLADE_KATAR_CUBE,
|
|
IG_SWORD_OF_BLUEFIRE_CUBE,
|
|
IG_SLATE_SWORD_CUBE,
|
|
IG_NARCIS_BOW_CUBE,
|
|
IG_TRUMPET_SHELL_K_CUBE,
|
|
IG_BARB_WIRE_K_CUBE,
|
|
IG_AVENGER_CUBE,
|
|
IG_METEOR_STRIKER_CUBE,
|
|
IG_MAGIC_SWORD_CUBE,
|
|
IG_FATALIST_CUBE,
|
|
IG_ROYAL_BOW_K_CUBE,
|
|
IG_SCALET_DRAGON_L_CUBE,
|
|
IG_SHADOW_STAFF_K_CUBE,
|
|
IG_FREEZING_ROD_CUBE,
|
|
IG_IRON_NAIL_K_CUBE,
|
|
IG_RAY_KNUCKLE_CUBE,
|
|
IG_UNDINE_SPEAR_K_CUBE,
|
|
IG_LIGHT_BLADE_CUBE,
|
|
IG_IRON_STAFF_CUBE,
|
|
IG_BLUE_CRYSTAL_STAFF_CUBE,
|
|
IG_DEMON_HUNT_BIBLE_CUBE,
|
|
IG_SAINT_HALL_CUBE,
|
|
IG_MEAWFOXTAIL_CUBE,
|
|
IG_FOG_DEW_SWORD_CUBE,
|
|
IG_HUMMA_CLEAR_CUBE,
|
|
IG_THOUSAND_SUN_CUBE,
|
|
IG_SPIRIT_PENDULUM_CUBE,
|
|
IG_CRIMSON_ROSE_CUBE,
|
|
IG_MASTER_SOUL_RIFLE_CUBE,
|
|
IG_GOLDEN_LORD_LAUNCHER_CUBE,
|
|
IG_THE_BLACK_CUBE,
|
|
IG_DEMON_SLAYER_SHOT_CUBE,
|
|
IG_RUNE_CRAFT_MATERIALS,
|
|
IG_ELEMENTAL_CONVERTER,
|
|
IG_POISONS,
|
|
IG_BLACKSMITH,
|
|
IG_POTION_CRAFT_MATERIALS,
|
|
IG_KUNAI_BOX,
|
|
IG_BULLET_CASE,
|
|
IG_SOUL_LINKER,
|
|
IG_ELEMENTAL_STONES,
|
|
IG_SHADOW_CUBE_ARMOR,
|
|
IG_SHADOW_CUBE_SHIELD,
|
|
IG_SHADOW_CUBE_SHOES,
|
|
IG_SHADOW_CUBE_WEAPON,
|
|
IG_AUTOMATIC_MODULE_MIX,
|
|
IG_EPIC_MODULE_MIX,
|
|
IG_AUTO_M_I_BOX_A,
|
|
IG_AUTO_M_I_BOX_B,
|
|
IG_ILLUSION_MODULE_MIX,
|
|
IG_ENCHANT_STONE_BOX22,
|
|
IG_ENCHANT_STONE_BOX23,
|
|
IG_ENCHANT_STONE_BOX24,
|
|
IG_ENCHANT_STONE_BOX25,
|
|
IG_ENCHANT_STONE_BOX27,
|
|
IG_ANCIENT_HERO_BOX_1,
|
|
IG_3LV_9REFINE_WEAPON_7GU,
|
|
IG_3LV_10REFINE_WEAPON_8GU,
|
|
IG_3LV_11REFINE_WEAPON_9GU,
|
|
IG_3LV_12REFINE_WEAPON_10G,
|
|
IG_4LV_9REFINE_WEAPON_8GU,
|
|
IG_4LV_10REFINE_WEAPON_9GU,
|
|
IG_4LV_11REFINE_WEAPON_10G,
|
|
IG_BS_ITEM_M_S_52,
|
|
IG_BS_ITEM_M_S_53,
|
|
IG_BS_ITEM_M_S_54,
|
|
IG_BS_ITEM_M_S_55,
|
|
IG_BS_ITEM_M_S_56,
|
|
IG_ENCHANT_STONE_BOX28,
|
|
IG_S_FULLPENE_EARRING,
|
|
IG_S_FULLPENE_PENDANT,
|
|
IG_S_FULLPENE_ARMOR,
|
|
IG_S_FULLPENE_SHOES,
|
|
IG_S_FULLTEMP_EARRING,
|
|
IG_S_FULLTEMP_PENDANT,
|
|
IG_S_FULLTEMP_ARMOR,
|
|
IG_S_FULLTEMP_SHOES,
|
|
IG_S_DURABLE_WEAPON,
|
|
IG_S_DURABLE_SHIELD,
|
|
IG_S_CLEVER_WEAPON,
|
|
IG_S_CLEVER_SHIELD,
|
|
IG_S_ALLMIGHTY_EARRING,
|
|
IG_S_ALLMIGHTY_PENDANT,
|
|
IG_S_TRUEGEM_EARRING,
|
|
IG_S_TRUEGEM_PENDANT,
|
|
IG_S_TRUEGEM_SHOES,
|
|
IG_S_TRUEGEM_ARMOR,
|
|
IG_S_PERFECTSIZE_WEAPON,
|
|
IG_S_PERFECTSIZE_ARMOR,
|
|
IG_S_M_MAMMOTH_EARRING,
|
|
IG_S_M_MAMMOTH_PENDANT,
|
|
IG_S_M_MAMMOTH_ARMOR,
|
|
IG_S_M_MAMMOTH_SHOES,
|
|
IG_S_SPELLCASTER_EARRING,
|
|
IG_S_SPELLCASTER_PENDANT,
|
|
IG_S_SPELLCASTER_ARMOR,
|
|
IG_S_SPELLCASTER_SHOES,
|
|
IG_S_ABSORB_WEAPON,
|
|
IG_S_ABSORB_SHIELD,
|
|
IG_PORINGSPRECIOUSBOX,
|
|
IG_ENCHANT_STONE_BOX29,
|
|
IG_EIN_1HITEMBOX,
|
|
IG_EIN_UNDIUM,
|
|
IG_PC_COSTUME_BOX,
|
|
IG_WET_SEALED_CARD,
|
|
IG_2019_SSTARR_TBOX,
|
|
IG_E_LIFE_POTION_PACK,
|
|
IG_E_DEF_SCROLL_BOX,
|
|
IG_E_ALMIGHTY_BOX,
|
|
IG_E_LIMITPOWERBOOSTER,
|
|
IG_ROYAL_SECRET_BOX,
|
|
IG_SEASON_EVT_REWARD_2,
|
|
IG_HERO_HAMMER_PACKAGE_5,
|
|
IG_FLIPPACKAGE,
|
|
IG_POPE_SCROLL,
|
|
IG_MYSTERIOUS_EGG2,
|
|
IG_GUILDSMAN_RECRUITER_BOX,
|
|
IG_PARTY_RECRUITER_HAT_BOX,
|
|
IG_BF_RECRUITER_HAT_BOX,
|
|
IG_FRIEND_RECR_HAT_BOX,
|
|
IG_GF_RECRUITER_HAT_BOX,
|
|
IG_MARCHER_HAT_BOX,
|
|
IG_F_GUILDSMAN_RECR_BOX,
|
|
IG_F_PARTY_RECR_HAT_BOX,
|
|
IG_FBF_RECRUITER_HAT_BOX,
|
|
IG_F_FRIEND_RECR_HAT_BOX,
|
|
IG_FGF_RECRUITER_HAT_BOX,
|
|
IG_BONUS_BOX01,
|
|
IG_BONUS_BOX02,
|
|
IG_BONUS_BOX03,
|
|
IG_BONUS_BOX04,
|
|
IG_BONUS_BOX05,
|
|
IG_BONUS_BOX06,
|
|
IG_BONUS_BOX07,
|
|
IG_BONUS_BOX08,
|
|
IG_BONUS_BOX09,
|
|
IG_BONUS_BOX10,
|
|
IG_F_BONUS_BOX01,
|
|
IG_F_BONUS_BOX02,
|
|
IG_F_BONUS_BOX03,
|
|
IG_F_BONUS_BOX04,
|
|
IG_F_BONUS_BOX05,
|
|
IG_F_BONUS_BOX06,
|
|
IG_F_BONUS_BOX07,
|
|
IG_F_BONUS_BOX08,
|
|
IG_F_BONUS_BOX09,
|
|
IG_F_BONUS_BOX10,
|
|
IG_FUGIN_EGG01,
|
|
IG_FUGIN_EGG02,
|
|
IG_PUMP_OF_SPIRIT_SCROLL,
|
|
IG_HAPPY_BALLOON_SCROLL,
|
|
IG_ANGRY_MOUTH_C_BOX,
|
|
IG_KRO_LUCKY_BOX,
|
|
IG_CLAYMORE_C_BOX,
|
|
IG_JAMADHAR_C_BOX,
|
|
IG_TWO_HANDED_AXE_C_BOX,
|
|
IG_LANCE_C_BOX,
|
|
IG_HUUMA_GIANT_WHEEL_C_BOX,
|
|
IG_ORCISH_AXE_C_BOX,
|
|
IG_PIKE_C_BOX,
|
|
IG_ENCYCLOPEDIA_C_BOX,
|
|
IG_FIST_C_BOX,
|
|
IG_GUITAR_C_BOX,
|
|
IG_RANTE_C_BOX,
|
|
IG_DAMASCUS_C_BOX,
|
|
IG_FLAMBERGE_C_BOX,
|
|
IG_STUNNER_C_BOX,
|
|
IG_F_KRO_LUCKY_BOX,
|
|
IG_F_CLAYMORE_C_BOX,
|
|
IG_F_JAMADHAR_C_BOX,
|
|
IG_F_TWO_HANDED_AXE_C_BOX,
|
|
IG_F_LANCE_C_BOX,
|
|
IG_F_HUUMA_GIANT_C_BOX,
|
|
IG_F_ORCISH_AXE_C_BOX,
|
|
IG_F_PIKE_C_BOX,
|
|
IG_F_ENCYCLOPEDIA_C_BOX,
|
|
IG_F_FIST_C_BOX,
|
|
IG_F_GUITAR_C_BOX,
|
|
IG_F_RANTE_C_BOX,
|
|
IG_F_DAMASCUS_C_BOX,
|
|
IG_F_FLAMBERGE_C_BOX,
|
|
IG_F_STUNNER_C_BOX,
|
|
IG_F_ANGRY_MOUTH_C_BOX,
|
|
IG_MARIONETTE_C_BOX,
|
|
IG_WHISPER_C_BOX,
|
|
IG_INCUBUS_C_BOX,
|
|
IG_F_MARIONETTE_C_BOX,
|
|
IG_F_WHISPER_C_BOX,
|
|
IG_F_INCUBUS_C_BOX,
|
|
IG_F_ACTI_POTION_BOX,
|
|
IG_RO_DS_HEADGEAR_BOX,
|
|
IG_HOCKEY_MASK_BOX1,
|
|
IG_OBSERVER_BOX1,
|
|
IG_ALL_IN_ONE_RING_BOX1,
|
|
IG_SPRITUAL_TUNIC_BOX1,
|
|
IG_RECUPERATIVE_ARMOR_BOX1,
|
|
IG_SHELTER_RESIST_BOX1,
|
|
IG_SYLPHID_MANTEAU_BOX1,
|
|
IG_REFRESH_SHOES_BOX1,
|
|
IG_WELL_BAKED_TOAST_BOX1,
|
|
IG_WASTELAND_OUTLAW_BOX1,
|
|
IG_LEVER_ACT_RIFLE_BOX1,
|
|
IG_HEALING_STAFF_BOX1,
|
|
IG_PRAXINUS_BOX1,
|
|
IG_GUILD_RECRUIT_BOX1,
|
|
IG_PARTY_RECRUIT_HAT_BOX1,
|
|
IG_BF_RECRUIT_HAT_BOX1,
|
|
IG_GF_RECRUIT_HAT_BOX1,
|
|
IG_FRIEND_RECRUIT_HAT_BOX1,
|
|
IG_CLAYMORE_C_BOX1,
|
|
IG_TWO_HANDED_AXE_C_BOX1,
|
|
IG_LANCE_C_BOX1,
|
|
IG_JAMADHAR_C_BOX1,
|
|
IG_HUUMA_GIANT_C_BOX1,
|
|
IG_ORCISH_AXE_C_BOX1,
|
|
IG_PIKE_C_BOX1,
|
|
IG_ENCYCLOPEDIA_C_BOX1,
|
|
IG_FIST_C_BOX1,
|
|
IG_GUITAR_C_BOX1,
|
|
IG_RANTE_C_BOX1,
|
|
IG_DAMASCUS_C_BOX1,
|
|
IG_FLAMBERGE_C_BOX1,
|
|
IG_STUNNER_C_BOX1,
|
|
IG_ANGRY_MOUTH_C_BOX1,
|
|
IG_SHOOTING_STAR_C_BOX,
|
|
IG_BLOODY_FEAR_C_BOX,
|
|
IG_AHLSPIESS_C_BOX,
|
|
IG_STAFF_OF_HEALING_C_BOX,
|
|
IG_ANTI_DEMON_SHIELD_C_BOX,
|
|
IG_F_SHOOTING_STAR_C_BOX,
|
|
IG_F_BLOODY_FEAR_C_BOX,
|
|
IG_F_AHLSPIESS_C_BOX,
|
|
IG_F_S_HEALING_C_BOX,
|
|
IG_F_A_DEMON_SHIELD_C_BOX,
|
|
IG_MBL_PET_RANDOM_BOX,
|
|
IG_7TH_ANNI_RANDOM_BOX,
|
|
IG_FREYJA_RING_BOX,
|
|
IG_F_FREYJA_RING_BOX,
|
|
IG_F_CLOVER_BOX_MOUTH,
|
|
IG_F_BGUM_BOX_IN_MOUTH,
|
|
IG_F_CLOVER_BOX_MOUTH2,
|
|
IG_F_CLOVER_BOX_MOUTH4,
|
|
IG_F_BGUM_BOX_IN_MOUTH2,
|
|
IG_F_BGUM_BOX_IN_MOUTH4,
|
|
IG_FREYJA_RING_BOX2,
|
|
IG_F_FREYJA_RING_BOX2,
|
|
IG_BM_PACK_BOX_A,
|
|
IG_F_BM_PACK_BOX_A,
|
|
IG_BM_PACK_BOX_B,
|
|
IG_F_BM_PACK_BOX_B,
|
|
IG_XMAS_CARD_BOX,
|
|
IG_F_XMAS_CARD_BOX,
|
|
IG_XMAS_CARD_BOX2,
|
|
IG_F_XMAS_CARD_BOX2,
|
|
IG_E_BUNNY_BAND_BOX,
|
|
IG_SUMMER_SCROLL2,
|
|
IG_F_ACTI_POTION_BOX2,
|
|
IG_HALF_MEGIN_BOX,
|
|
IG_HALF_BRYSING_BOX,
|
|
IG_SPIKED_SCARF_BOX2,
|
|
IG_RAINBOW_SCARF_BOX2,
|
|
IG_SPIKED_SCARF_BOX3,
|
|
IG_RAINBOW_SCARF_BOX3,
|
|
IG_F_SPIKED_SCARF_BOX,
|
|
IG_F_RAINBOW_SCARF_BOX,
|
|
IG_F_SPIKED_SCARF_BOX2,
|
|
IG_F_RAINBOW_SCARF_BOX2,
|
|
IG_F_SPIKED_SCARF_BOX3,
|
|
IG_F_RAINBOW_SCARF_BOX3,
|
|
IG_F_RIBBON_OF_LIFE_BOX,
|
|
IG_F_RIBBON_OF_LIFE_BOX2,
|
|
IG_F_RIBBON_OF_LIFE_BOX3,
|
|
IG_F_RAPID_LIFE_WATER_BOX,
|
|
IG_F_MAGIC_CANDY_BOX10,
|
|
IG_UMBALA_SPIRIT_BOX,
|
|
IG_F_UMBALA_SPIRIT_BOX,
|
|
IG_UMBALA_SPIRIT_BOX_7DAY,
|
|
IG_C_REPAIR_SCROLL_BOX,
|
|
IG_C_REPAIR_SCROLL_BOX10,
|
|
IG_C_UMBALA_SPIRIT_BOX2,
|
|
IG_C_MURAMASA_BOX,
|
|
IG_C_EXCALIBUR_BOX,
|
|
IG_C_COMBAT_KNIFE_BOX,
|
|
IG_C_COUNTER_DAGGER_BOX,
|
|
IG_C_MIGHTY_STAFF_BOX,
|
|
IG_C_RIGHT_EPSILON_BOX,
|
|
IG_C_BALISTAR_BOX,
|
|
IG_C_D_GREAT_SAGE_BOX,
|
|
IG_C_ASURA_BOX,
|
|
IG_C_BROOCH_BOX,
|
|
IG_C_SAFETY_RING_BOX,
|
|
IG_C_PECOPECO_HAIRBAND_BOX,
|
|
IG_C_NAGAN_BOX,
|
|
IG_C_SKEWER_BOX,
|
|
IG_C_QUADRILLE_BOX,
|
|
IG_C_FIRE_BRAND_BOX,
|
|
IG_C_MASQUERADE_BOX,
|
|
IG_C_ORC_HERO_HELM_BOX,
|
|
IG_C_KRO_D_KITTY_BOX,
|
|
IG_C_BLOODY_IRON_BALL_BOX,
|
|
IG_C_HOCKEY_MASK_BOX,
|
|
IG_C_OBSERVER_BOX,
|
|
IG_C_ALL_IN_ONE_RING_BOX,
|
|
IG_C_SPIRITUAL_TUNIC_BOX,
|
|
IG_C_RECUP_ARMOR_BOX,
|
|
IG_C_SHELTER_RESIST_BOX,
|
|
IG_C_SYLPHID_MANTEAU_BOX,
|
|
IG_C_REFRESH_SHOES_BOX,
|
|
IG_C_WASTELAND_OUTLAW_BOX,
|
|
IG_C_LEVER_ACT_RIFLE_BOX,
|
|
IG_C_CLAYMORE_C_BOX,
|
|
IG_C_JAMADHAR_C_BOX,
|
|
IG_C_TWO_HANDED_AXE_C_BOX,
|
|
IG_C_LANCE_C_BOX,
|
|
IG_C_ORCISH_AXE_C_BOX,
|
|
IG_C_ENCYCLOPEDIA_C_BOX,
|
|
IG_C_PIKE_C_BOX,
|
|
IG_C_FIST_C_BOX,
|
|
IG_C_DAMASCUS_C_BOX,
|
|
IG_C_FLAMBERGE_C_BOX,
|
|
IG_C_STUNNER_C_BOX,
|
|
IG_C_SHOOTING_STAR_C_BOX,
|
|
IG_C_BLOODY_FEAR_C_BOX,
|
|
IG_C_STAFF_HEALING_C_BOX,
|
|
IG_C_CLOVER_BOX_MOUTH,
|
|
IG_C_CLOVER_BOX_MOUTH2,
|
|
IG_C_CLOVER_BOX_MOUTH4,
|
|
IG_C_BGUM_BOX_IN_MOUTH,
|
|
IG_C_BGUM_BOX_IN_MOUTH2,
|
|
IG_C_BGUM_BOX_IN_MOUTH4,
|
|
IG_C_SPIKED_SCARF_BOX,
|
|
IG_C_SPIKED_SCARF_BOX2,
|
|
IG_C_SPIKED_SCARF_BOX3,
|
|
IG_C_RAINBOW_SCARF_BOX,
|
|
IG_C_RAINBOW_SCARF_BOX2,
|
|
IG_C_RAINBOW_SCARF_BOX3,
|
|
IG_C_RIBBON_OF_LIFE_BOX,
|
|
IG_C_RIBBON_OF_LIFE_BOX2,
|
|
IG_C_RIBBON_OF_LIFE_BOX3,
|
|
IG_C_LOVE_ANGEL_BOX,
|
|
IG_C_LOVE_ANGEL_BOX_1M,
|
|
IG_C_SQUIRREL_BOX,
|
|
IG_C_SQUIRREL_BOX_1M,
|
|
IG_C_PICTURE_DIARY_BOX,
|
|
IG_C_PICTURE_DIARY_BOX_1M,
|
|
IG_C_MINI_HEART_BOX,
|
|
IG_C_MINI_HEART_BOX_1M,
|
|
IG_C_NEWCOMER_BOX,
|
|
IG_C_NEWCOMER_BOX_1M,
|
|
IG_C_KID_BOX,
|
|
IG_C_KID_BOX_1M,
|
|
IG_C_MAGIC_CASTLE_BOX,
|
|
IG_C_MAGIC_CASTLE_BOX_1M,
|
|
IG_C_BULGING_HEAD_BOX,
|
|
IG_C_BULGING_HEAD_BOX_1M,
|
|
IG_REFINE_ORE_BOX,
|
|
IG_ATTEND_C_BOX,
|
|
IG_TRANS_A_SET,
|
|
IG_TRANS_B_SET,
|
|
IG_TRANS_C_SET,
|
|
IG_MADE_DISH_SET,
|
|
IG_MADE_DISH_BOX,
|
|
IG_RED_BOOSTER_BOX20_2,
|
|
IG_MYSTIC_POWDER_BOX30_2,
|
|
IG_EC_BATTLE_MANUAL_BOX,
|
|
IG_EC_JOB_MANUAL25_BOX10,
|
|
IG_GLOBAL_HAT_FES_BOX,
|
|
IG_GLOBAL_HAT_FES_5_BOX,
|
|
IG_GLOBAL_HAT_FES_BOX2,
|
|
IG_MADE_DISH_BOX1,
|
|
IG_MYSTERIOUS_WATER_BOX50,
|
|
IG_MYSTERIOUS_WATER_BOX50_,
|
|
IG_REFINE_ORE_BOX2,
|
|
IG_RED_POTION_RG_BOX,
|
|
IG_BLUE_POTION_RG_BOX,
|
|
IG_GOLDENAPPLE_P_RG_BOX,
|
|
IG_GOLDENAPPLE_RG_BOX,
|
|
IG_GOLDEN_POTION_RG_BOX,
|
|
IG_SPECIAL_PO_BOX,
|
|
IG_BATTLE_MANUAL_LIMIT_BOX,
|
|
IG_UNLIMITED_20_BOX,
|
|
IG_CUSTOMIZING_BOX,
|
|
IG_NYANGVINE_BOX10_,
|
|
IG_NYANGVINE_BOX100,
|
|
IG_SERVICE30_M_01_BOX,
|
|
IG_SERVICE30_F_01_BOX,
|
|
IG_3_LIFE_POTION_PACK6,
|
|
IG_3_LIFE_POTION_10PACK6,
|
|
IG_REFINE_ORE_BOX10,
|
|
IG_REFINE_ORE_BOX10_SET10,
|
|
IG_SERVICE30P_M_01_BOX,
|
|
IG_SERVICE30P_F_01_BOX,
|
|
IG_VIGORGRA_PACKAGE_V5,
|
|
IG_VIGORGRA_PACKAGE_SET_V5,
|
|
IG_C_GREED_1HOUR_BOX,
|
|
IG_C_CATPAW_1DAY_BOX,
|
|
IG_UNLIMITED_BOX4,
|
|
IG_UNLIMITED_10_BOX4,
|
|
IG_C_GIANT_FLY_1DAY_BOX,
|
|
IG_REFINE_ORE_BOX11,
|
|
IG_REFINE_ORE_BOX11_SET10,
|
|
IG_3_LIFE_POTION_PACK7,
|
|
IG_3_LIFE_POTION_10PACK7,
|
|
IG_ALMIGHTY_PLUS_BOX,
|
|
IG_ALMIGHTY100_PLUSBOX,
|
|
IG_LIMIT_POWER_BOOSTER2,
|
|
IG_LIMITPOWERBOOSTER2_100,
|
|
IG_LC_BOARDING_HALTER_BOX,
|
|
IG_REFINE_ORE_BOX12,
|
|
IG_REFINE_ORE_BOX12_SET10,
|
|
IG_VIGORGRA_PLUS_PACKAGE,
|
|
IG_VIGORGRA_PLUS_SET,
|
|
IG_3_LIFE_POTION_PACK8,
|
|
IG_3_LIFE_POTION_10PACK8,
|
|
IG_UNLIMITED_BOX5,
|
|
IG_UNLIMITED_10_BOX5,
|
|
IG_REFINE_ORE_BOX13,
|
|
IG_REFINE_ORE_BOX13_SET10,
|
|
IG_HD_REFINE_ORE_BOX,
|
|
IG_NYANGVINE_BOX10_2,
|
|
IG_NYANGVINE_BOX100_2,
|
|
IG_VIGORGRA_PLUS_PACKAGE2,
|
|
IG_VIGORGRA_PLUS_SET2,
|
|
IG_3_LIFE_POTION_PACK9,
|
|
IG_3_LIFE_POTION_10PACK9,
|
|
IG_REFINE_ORE_BOX14,
|
|
IG_REFINE_ORE_BOX14_SET10,
|
|
IG_HD_REFINE_ORE_BOX2,
|
|
IG_ALMIGHTY_PLUS_BOX2,
|
|
IG_ALMIGHTY100_PLUSBOX2,
|
|
IG_DEF_SCROLL_BOX,
|
|
IG_DEF_SCROLL_BOX_SET,
|
|
IG_LIMIT_POWER_BOOSTER3,
|
|
IG_LIMITPOWERBOOSTER3_100,
|
|
IG_HD_HIGH_REFINE_BOX,
|
|
IG_REFINE_ORE_BOX15_SET10,
|
|
IG_REFINE_ORE_BOX15,
|
|
IG_HD_REFINE_ORE_BOX3,
|
|
IG_VIGORGRA_PLUS_PACKAGE3,
|
|
IG_VIGORGRA_PLUS_SET3,
|
|
IG_C_CATPAW_7DAY_BOX,
|
|
IG_ALMIGHTY_PLUS_BOX3,
|
|
IG_ALMIGHTY100_PLUSBOX3,
|
|
IG_3_LIFE_POTION_PACK10,
|
|
IG_3_LIFE_POTION_10PACK10,
|
|
IG_UNLIMITED_10_BOX6,
|
|
IG_UNLIMITED_BOX6,
|
|
IG_REFINE_ORE_BOX16,
|
|
IG_REFINE_ORE_BOX16_SET10,
|
|
IG_HD_REFINE_ORE_BOX4,
|
|
IG_HD_HIGH_REFINE_BOX2,
|
|
IG_DEF_SCROLL_BOX2,
|
|
IG_DEF_SCROLL_BOX_SET2,
|
|
IG_3_LIFE_POTION_PACK11,
|
|
IG_3_LIFE_POTION_10PACK11,
|
|
IG_RTC_ANNIV_BOX,
|
|
IG_REFINE_ORE_BOX17_SET10,
|
|
IG_REFINE_ORE_BOX17,
|
|
IG_HD_REFINE_ORE_BOX5,
|
|
IG_HD_HIGH_REFINE_BOX3,
|
|
IG_INFINITY_BOX,
|
|
IG_INFINITY_10_BOX,
|
|
IG_NEW_VIGORGRA_PACKAGE,
|
|
IG_NEW_VIGORGRA_SET,
|
|
IG_LIMITPOWERBOOSTER4_100,
|
|
IG_LIMIT_POWER_BOOSTER4,
|
|
IG_2017_GSTAR_COSTUMEBOX,
|
|
IG_ZERO_MERCHANT_BELL_BOX,
|
|
IG_ZERO_KAFRA_BELL_BOX,
|
|
IG_REFINE_ORE_BOX18,
|
|
IG_REFINE_ORE_BOX18_SET10,
|
|
IG_HD_REFINE_ORE_BOX6,
|
|
IG_HD_HIGH_REFINE_BOX4,
|
|
IG_NEW_3_POTION_PACK,
|
|
IG_NEW_3_POTION_10PACK,
|
|
IG_NYANGVINE_BOX10_3,
|
|
IG_NYANGVINE_BOX100_3,
|
|
IG_ALMIGHTY_PLUS_BOX4,
|
|
IG_ALMIGHTY100_PLUSBOX4,
|
|
IG_REFINE_ORE_BOX19_SET10,
|
|
IG_REFINE_ORE_BOX19,
|
|
IG_HD_REFINE_ORE_BOX7,
|
|
IG_HD_HIGH_REFINE_BOX5,
|
|
IG_DEF_SCROLL_BOX3,
|
|
IG_DEF_SCROLL_BOX_SET3,
|
|
IG_3_LIFE_POTION_PACK12,
|
|
IG_3_LIFE_POTION_10PACK12,
|
|
IG_INFINITY_BOX2,
|
|
IG_INFINITY_10_BOX2,
|
|
IG_A_VIGORGRA_SET,
|
|
IG_A_VIGORGRA_PACKAGE,
|
|
IG_A_ALMIGHTY100_BOX,
|
|
IG_A_ALMIGHTY_BOX,
|
|
IG_A_REFINE_ORE_BOX_SET,
|
|
IG_A_REFINE_ORE_BOX,
|
|
IG_A_HD_REFINE_ORE_BOX,
|
|
IG_A_HD_HIGH_REFINE_BOX,
|
|
IG_A_LIMITPOWERBOOSTER_100,
|
|
IG_A_LIMITPOWERBOOSTER,
|
|
IG_A_DEF_SCROLL_BOX_SET,
|
|
IG_A_DEF_SCROLL_BOX,
|
|
IG_A_UNLIMITED_10_BOX,
|
|
IG_A_UNLIMITED_BOX,
|
|
IG_MADE_DISH_BOX2,
|
|
IG_COSTUME_SET1_KR,
|
|
IG_SEALED_SCROLL3,
|
|
IG_STATUS_DECREASE_SCROLL,
|
|
IG_MAD_BUNNY_SCROLL,
|
|
IG_SEALED_HAT_BOX,
|
|
IG_SEALED_HAT_BOX2,
|
|
IG_IMPROVED_NOMALBOX,
|
|
IG_IMPROVED_WOODENBOX,
|
|
IG_IMPROVED_GOLDENBOX,
|
|
IG_IMPROVED_PLATINUMBOX,
|
|
IG_13THCELEBRATEBOX,
|
|
IG_CROSSEVENTBOX,
|
|
IG_PIAMETTE_SCROLL,
|
|
IG_COWLICK_BOX,
|
|
IG_STRAIGHT_PONY_BOX,
|
|
IG_LOOSE_WAVE_TWIN_BOX,
|
|
IG_INVISIBLE_SCROLL,
|
|
IG_NEW_HAT_SCROLL,
|
|
IG_NEW_HAT_BOX,
|
|
IG_COKINGOPENBOX,
|
|
IG_2015_SPECIAL_SCROLL,
|
|
IG_2015_SPECIAL_BOX,
|
|
IG_2015_ANGEL_SCROLL,
|
|
IG_DECEMBERGIFTBOX_2016,
|
|
IG_NOVEMBERGIFTBOX_2016,
|
|
IG_PORING_SCROLL,
|
|
IG_MOBI_SUPPORT_BOX,
|
|
IG_TIME_GUARDIAN_BOX2,
|
|
IG_ASSORTED_SHDOWBOX,
|
|
IG_AMISTR_SCROLL,
|
|
IG_AMISTR_BOX,
|
|
IG_SHADOW_SCROLL,
|
|
IG_SPIRIT_SCROLL,
|
|
IG_SEALED_HAT_BOX3,
|
|
IG_CACHUA_WEAPON,
|
|
IG_CACHUA_ROBE,
|
|
IG_CACHUA_MAIL,
|
|
IG_CACHUA_SHOES,
|
|
IG_CACHUA_SHIELD,
|
|
IG_CACHUA_HELM,
|
|
IG_BALLOON_SCROLL,
|
|
IG_PORING_BALLOON_BOX,
|
|
IG_RIBEL_JUMPING_BOX,
|
|
IG_GUNSLINGER_SCROLL,
|
|
IG_GREEN_SCROLL_K,
|
|
IG_KAFRA_SCROLL,
|
|
IG_SIGRUN_SCROLL,
|
|
IG_PREMIUMWOODENBOX,
|
|
IG_PREMIUMGOLDENBOX,
|
|
IG_PREMIUMPLATINUMBOX,
|
|
IG_PREMIUMNOMALBOX,
|
|
IG_NEW_HAT_SCROLL2,
|
|
IG_NEW_HAT_BOX2,
|
|
IG_2016_SPECIAL_SCROLL,
|
|
IG_2016_SPECIAL_BOX,
|
|
IG_BISCUIT_STICK_2SET,
|
|
IG_RACING_EXCHANGE,
|
|
IG_CANDLELIGHT_SCROLL,
|
|
IG_LAPINE_SCROLL,
|
|
IG_LI_LAPINE_DDUKDDAKBOX,
|
|
IG_HAIR_BUN_BOX,
|
|
IG_ROLL_TWIN_BOX,
|
|
IG_LONG_PONY_BOX,
|
|
IG_1LVUP,
|
|
IG_10LVUP,
|
|
IG_20LVUP,
|
|
IG_30LVUP,
|
|
IG_40LVUP,
|
|
IG_50LVUP,
|
|
IG_60LVUP,
|
|
IG_70LVUP,
|
|
IG_90LVUP,
|
|
IG_175LVUP,
|
|
IG_BISCUIT_STICK_2SET_,
|
|
IG_LOVE_SCROLL,
|
|
IG_LOVELY_EGG_BOX,
|
|
IG_C_CATPAW_1DAY_PARA,
|
|
IG_C_WING_OF_FLY_1DAY_PARA,
|
|
IG_CAT_SCROLL,
|
|
IG_MAGICAL_BOOSTER_BOX,
|
|
IG_CAT_HEAD_DRESS_BASKET,
|
|
IG_CHEMICALS_BAG,
|
|
IG_SHADOW_SCROLL2,
|
|
IG_C_WING_OF_FLY_3DAY_BOX_,
|
|
IG_MOBILE_NOVICE_BOX,
|
|
IG_C_WING_OF_FLY_5DAY_BOX_,
|
|
IG_C_GIANT_FLY_1DAY_BOX_,
|
|
IG_C_WING_OF_FLY_BOX_,
|
|
IG_MAY_GOLD_SCROLL,
|
|
IG_NEW_HAT_BOX3,
|
|
IG_EXSHADOW_DDUKDDAKBOX,
|
|
IG_MATERIAL_SHADOW_CUBE,
|
|
IG_MYSTERIOUS_MEDAL_BOX,
|
|
IG_VEND_ARBEIT1_1LV,
|
|
IG_VEND_ARBEIT1_2LV,
|
|
IG_VEND_ARBEIT1_3LV,
|
|
IG_BUY_ARBEIT1_1LV,
|
|
IG_BUY_ARBEIT1_2LV,
|
|
IG_BUY_ARBEIT1_3LV,
|
|
IG_VEND_ARBEIT3_1LV,
|
|
IG_VEND_ARBEIT3_2LV,
|
|
IG_VEND_ARBEIT3_3LV,
|
|
IG_BUY_ARBEIT3_1LV,
|
|
IG_BUY_ARBEIT3_2LV,
|
|
IG_BUY_ARBEIT3_3LV,
|
|
IG_CRYPTURA_GIFTBOX,
|
|
IG_GENERAL_SCROLL,
|
|
IG_GREEN_SCROLL_K2,
|
|
IG_NEW_SHADOW_CUBE,
|
|
IG_SENTIMENTAL_SCROLL,
|
|
IG_JULY_HAIR_BOX,
|
|
IG_INFINITY_SCROLL,
|
|
IG_BLOODY_SCROLL,
|
|
IG_SNOW_FESTA_BOX,
|
|
IG_SNOW_FESTA_CARDPACK,
|
|
IG_2017_SPECIAL_SCROLL,
|
|
IG_2017_SPECIAL_BOX,
|
|
IG_ICE_SCROLL,
|
|
IG_2018_NEW_YEAR_SCROLL,
|
|
IG_2018_YEAR_SHADOW_CUBE,
|
|
IG_2018_MATERIAL_CUBE,
|
|
IG_2018_LAPINE_DDUKDDAKBOX,
|
|
IG_SWEETS_EVT_BOX,
|
|
IG_EVT_JAN02KR,
|
|
IG_2018_VISIONARY_CARD,
|
|
IG_LUNAR_NEW_YEAR_SCROLL,
|
|
IG_FEBRUARY_HAIR_BOX,
|
|
IG_2018_SPRING_SCROLL,
|
|
IG_2018_SAKURA_SCROLL,
|
|
IG_SEALED_CARD2,
|
|
IG_CELEBRATE_EGG,
|
|
IG_NOODLE_FESTA_CAN,
|
|
IG_COMP_AID_BUFF_BOX,
|
|
IG_COMP_BOX,
|
|
IG_COMP_ALL_RING_BOX,
|
|
IG_MYSTERIOUS_EGG3,
|
|
IG_COMP_BOX2,
|
|
IG_MAY_RAINBOW_SCROLL,
|
|
IG_SWEET_CANDY_BOX,
|
|
IG_PUMP_OF_SPIRIT_SCROLL2,
|
|
IG_SPIRIT_HAT_BOX,
|
|
IG_HERO_WEAPON_BOX,
|
|
IG_STARSOUL_SCROLL,
|
|
IG_COMP_CONNECTERROR,
|
|
IG_2018_JUMP_THX_BOX,
|
|
IG_TIME_OVERLOAD_BOX,
|
|
IG_110LVUP,
|
|
IG_SEASON_EVT_REWARD_3,
|
|
IG_SEASON_EVT_REWARD_4,
|
|
IG_SEASON_EVT_REWARD_5,
|
|
IG_JOB_ENCHANT_STONE_BOX,
|
|
IG_MAIN_LUCKY_BOX,
|
|
IG_SEASON_EVT_REWARD,
|
|
IG_CANDY_BOX,
|
|
IG_PORING_SUNGLASSES_BOX,
|
|
IG_SIGRUN_SHADOW_BOX,
|
|
IG_MAD_BUNNY_BOX,
|
|
IG_LEVEL_ACHIEVEMENT_BOX,
|
|
IG_ABYSS_ITEMBOX,
|
|
IG_ODIN_ITEMBOX,
|
|
IG_BIO_W_BOX,
|
|
IG_BIO_DOCU_BOX,
|
|
IG_BIO_REACTANT_BOX,
|
|
IG_PAYPROMOTION_BOX,
|
|
IG_E_BCRYSTAL_BOX,
|
|
IG_E_MCRYSTAL_BOX,
|
|
IG_E_SCRYSTAL_BOX,
|
|
IG_BOOSTER_PACK_1,
|
|
IG_BOOSTER_PACK_15,
|
|
IG_BOOSTER_PACK_30,
|
|
IG_BOOSTER_PACK_45,
|
|
IG_BOOSTER_PACK_60,
|
|
IG_BOOSTER_PACK_75,
|
|
IG_BOOSTER_PACK_90,
|
|
IG_BOOSTER_PACK_100,
|
|
IG_BOOSTER_PACK_115,
|
|
IG_BOOSTER_PACK_130,
|
|
IG_BOOSTER_PACK_145,
|
|
IG_BOOSTER_PACK_160,
|
|
IG_BOOSTER_PACK_175,
|
|
IG_STATER_A_BOX,
|
|
IG_BOOST_ATK_BOX,
|
|
IG_BOOST_RAN_BOX,
|
|
IG_BOOST_ELE_BOX,
|
|
IG_BOOST_DEFN_BOX,
|
|
IG_GOAL_GIFT_BOX,
|
|
IG_BOOSTER_PACK_PREORDER,
|
|
IG_TIME_OVER_S_BOX,
|
|
IG_BOARDING_HALTER_BOX30_Z,
|
|
IG_TEMPORAL_MANTEAU_BOX,
|
|
IG_LAPINE_DDUKDDAKBOX2,
|
|
IG_KR_B_SPECIAL02,
|
|
IG_GOLDPCBANG_SHIELDBOX,
|
|
IG_SET_OF_TAIMING_ITEM2,
|
|
IG_GOLDPCBANG_MILEAGEBOX,
|
|
IG_SKILL_SHADOW_CUBE,
|
|
IG_SHADOWDECON_ORE_BOX,
|
|
IG_ZELUNIUM_ORE_BOX,
|
|
IG_GSTAR2019BOX,
|
|
IG_EXOTIC_BOB_BOX,
|
|
IG_RUNEKNIGHT_S_CUBE,
|
|
IG_GUILLOTINECROSS_S_CUBE,
|
|
IG_ARCHBISHOP_S_CUBE,
|
|
IG_SURA_S_CUBE,
|
|
IG_2019_CHRISMAS_PRESENT,
|
|
IG_BOOSTER_PACK_190,
|
|
IG_BOOSTER_PACK_200,
|
|
IG_2020_GOAL_GIFT_BOX,
|
|
IG_RANGER_S_CUBE,
|
|
IG_WARLOCK_S_CUBE,
|
|
IG_SORCERER_S_CUBE,
|
|
IG_WANDERMINS_S_CUBE,
|
|
IG_ROYALGUARD_S_CUBE,
|
|
IG_SHADOWCHASER_S_CUBE,
|
|
IG_MECHANIC_S_CUBE,
|
|
IG_GENETIC_S_CUBE,
|
|
IG_SIGNON_PRIN_WAVE_BOX,
|
|
IG_HERO_WEAPON_CUBE,
|
|
IG_NEW_S_WEAPON_CUBE,
|
|
IG_NEW_S_SHIELD_CUBE,
|
|
IG_NEW_S_ARMOR_CUBE,
|
|
IG_NEW_S_SHOES_CUBE,
|
|
IG_NEW_S_EARRING_CUBE,
|
|
IG_NEW_S_PENDANT_CUBE,
|
|
IG_MD_AIRBOAT_REWARD,
|
|
IG_OS_HELM_BOX,
|
|
IG_FAMOUS_HAT_BOX,
|
|
IG_POENETENTIA_BOX1,
|
|
IG_POENETENTIA_BOX2,
|
|
IG_EX_SKILL_SHADOW_CUBE,
|
|
IG_CACHUA_COSTUME_BOX,
|
|
IG_KR_B_SPECIAL03,
|
|
IG_BIOWEAPON_HELM_BOX,
|
|
IG_TREE_OF_SPROUT_BOX,
|
|
IG_SPECIAL_COSTUME_BOX,
|
|
IG_SPECIAL_COSTUME_BOX_,
|
|
IG_RAG_INVEN_BOX,
|
|
IG_THANATOS_PENDANT_BOX,
|
|
IG_LAPINE_DDUKDDAKBOX3,
|
|
IG_AUCTION_PROMOTION,
|
|
IG_BLUE_PRINTS_SCROLL,
|
|
IG_MATERIAL_SHADOW_CUBEII,
|
|
IG_ANCIENT_HERO_WILL,
|
|
IG_MAMMOTH_SHADOW_BOX,
|
|
IG_SHADOW_R_M_BOX,
|
|
IG_ALL_SHADOW_CUBE,
|
|
IG_FLUFFY_SEMI_LONG_BOX,
|
|
IG_BOOSTER_PACK_215,
|
|
IG_BOOSTER_PACK_230,
|
|
IG_ANGELPORINGJEWEL_BOX,
|
|
IG_UP_HERO_WEAPON_BOX,
|
|
IG_HIGH_REFINE_GUARANTEE,
|
|
IG_REFINE_GUARANTEE,
|
|
IG_SPECIAL_REFINE_CUBE,
|
|
IG_AUTOSPELL_SHADOW_BOX,
|
|
IG_BROADCASTBOX_,
|
|
IG_S_ENCHANT_STONE_BOX,
|
|
IG_C_GIANT_FLY_1DAY_BOX__,
|
|
IG_C_WING_OF_FLY_3DAY_B__,
|
|
IG_PHYMAG_SHADOW_BOX,
|
|
IG_S_DUAL_STONE_BOX,
|
|
IG_S_COSTUME_BOX,
|
|
IG_GM_LOST_BAGPACK,
|
|
IG_E_POTION_BOX,
|
|
IG_BUFF_SCROLL_BOX,
|
|
IG_SEASON_EVT_REWARD_9,
|
|
IG_S_IGNITION_CUBE,
|
|
IG_LI_HD_ORIDECON_BOX2,
|
|
IG_LI_HD_ELUNIUM_BOX2,
|
|
IG_LI_HD_BRADIUMBOX2,
|
|
IG_LI_HD_CARNIUMBOX2,
|
|
IG_LI_NYANGVINE_BOX100,
|
|
IG_LI_A_3_POTION_PACK,
|
|
IG_STONE_COIN_PACKAGEI,
|
|
IG_STONE_COIN_PACKAGEII,
|
|
IG_STONE_COIN_PACKAGEIII,
|
|
IG_A_HD_ELUNIUM_BOX,
|
|
IG_A_HD_ORIDECON_BOX,
|
|
IG_A_HD_CARNIUM_BOX,
|
|
IG_A_HD_BRADIUM_BOX,
|
|
IG_L_BATTLE_MANUAL_PACK,
|
|
IG_LI_MANA_POTION_BOX,
|
|
IG_LI_NYANGVINE_BOX_II,
|
|
IG_LI_NYANGVINE_BOX_III,
|
|
IG_LI_HD_ORIDECON_BOX3,
|
|
IG_LI_HD_ELUNIUM_BOX3,
|
|
IG_LI_NYANGVINE_STONE_BOX,
|
|
IG_LI_A_REFINE_ORE_BOX,
|
|
IG_LI_A_HD_ELUNIUM_BOX,
|
|
IG_LI_A_HD_ORIDECON_BOX,
|
|
IG_LI_A_HD_CARNIUM_BOX,
|
|
IG_LI_A_HD_BRADIUM_BOX,
|
|
IG_THANOS_UPGRADE_PACKAGE,
|
|
IG_HERO_UP_PACKAGE_1,
|
|
IG_HERO_UP_PACKAGE_2,
|
|
IG_HERO_HAMMER_PACKAGE_1,
|
|
IG_HERO_HAMMER_PACKAGE_2,
|
|
IG_HERO_UP_PACKAGE_3,
|
|
IG_HERO_HAMMER_PACKAGE_3,
|
|
IG_EXP_DROP_UP_BOX,
|
|
IG_HERO_HAMMER_PACKAGE_4,
|
|
IG_HERO_UP_PACKAGE_4,
|
|
IG_LI_NYANGVINE_STONE_BOX2,
|
|
IG_HERO_UP_PACKAGE_5,
|
|
IG_COSTUMEMILEAGE_PACKAGE1,
|
|
IG_COSTUMEMILEAGE_PACKAGE2,
|
|
IG_COSTUMEMILEAGE_PACKAGE3,
|
|
IG_COMP_TRANS_SCROLL,
|
|
IG_MINUS_STATUS_BOX,
|
|
IG_S_W_BREATH_CUBE,
|
|
IG_S_F_BREATH_CUBE,
|
|
IG_S_SONIC_CUBE,
|
|
IG_S_STRAIN_CUBE,
|
|
IG_S_JACK_CUBE,
|
|
IG_S_CHAIN_CUBE,
|
|
IG_S_CRIMSON_CUBE,
|
|
IG_S_VULCAN_CUBE,
|
|
IG_S_BOOMERANG_CUBE,
|
|
IG_S_ARMS_CUBE,
|
|
IG_S_TORNADO_CUBE,
|
|
IG_S_DUPLELIGHT_CUBE,
|
|
IG_S_MAGNUS_CUBE,
|
|
IG_S_ADORAMUS_CUBE,
|
|
IG_S_JUDEX_CUBE,
|
|
IG_S_ROLLING_CUBE,
|
|
IG_S_RIPPER_CUBE,
|
|
IG_S_SLASH_CUBE,
|
|
IG_S_KATAR_CUBE,
|
|
IG_S_SHOOTING_CUBE,
|
|
IG_S_ARROW_CUBE,
|
|
IG_S_AIMED_CUBE,
|
|
IG_S_CLUSTER_CUBE,
|
|
IG_S_BANISH_CANNON_CUBE,
|
|
IG_S_BRAND_CUBE,
|
|
IG_S_GENESIS_CUBE,
|
|
IG_S_CHAIN_PRESS_CUBE,
|
|
IG_S_GRAVE_CUBE,
|
|
IG_S_DUST_CUBE,
|
|
IG_S_VARETYR_CUBE,
|
|
IG_S_PSYCHIC_CUBE,
|
|
IG_S_SPORE_BOMB_CUBE,
|
|
IG_S_CANNON_CART_CUBE,
|
|
IG_S_CRAZY_CUBE,
|
|
IG_S_CART_TORNADO_CUBE,
|
|
IG_S_KNUCKLEARROW_CUBE,
|
|
IG_S_SKYNETBLOW_CUBE,
|
|
IG_S_RAMPAGE_CUBE,
|
|
IG_S_TIGERCANNON_CUBE,
|
|
IG_S_MENACE_CUBE,
|
|
IG_S_SHADOWSPELL_CUBE,
|
|
IG_S_TRIANGLE_CUBE,
|
|
IG_S_PAINT_CUBE,
|
|
IG_S_RAINSTORM_CUBE,
|
|
IG_S_METALIC_CUBE,
|
|
IG_S_ARROWVULCAN_CUBE,
|
|
IG_S_REVERBERATION_CUBE,
|
|
IG_S_MOONLIGHT_CUBE,
|
|
IG_S_SUNSHINE_CUBE,
|
|
IG_S_STARDUST_CUBE,
|
|
IG_S_S_CUBE,
|
|
IG_S_EVILCURSE_CUBE,
|
|
IG_S_SYURIKEN_CUBE,
|
|
IG_S_KUNAI_CUBE,
|
|
IG_S_HUUSOUKA_CUBE,
|
|
IG_S_KAMAENRAKU_CUBE,
|
|
IG_S_GOD_HAMMER_CUBE,
|
|
IG_S_SHATTER_BUSTER_CUBE,
|
|
IG_S_TAIL_DRAGON_CUBE,
|
|
IG_S_TRIP_CUBE,
|
|
IG_S_FLARE_DANCE_CUBE,
|
|
IG_S_SUPER_MAGIC_CUBE,
|
|
IG_S_SUPER_POWER_CUBE,
|
|
IG_S_SILVERVINE_CUBE,
|
|
IG_S_CATNIP_CUBE,
|
|
IG_S_SAVAGERABBIT_CUBE,
|
|
IG_S_PICKYRUSH_CUBE,
|
|
IG_S_RUNEKNIGHT_CUBE,
|
|
IG_S_ROYALGUARD_CUBE,
|
|
IG_S_WARLOCK_CUBE,
|
|
IG_S_SORCERER_CUBE,
|
|
IG_S_MECHANIC_CUBE,
|
|
IG_S_GENERIC_CUBE,
|
|
IG_S_ARCHBISHOP_CUBE,
|
|
IG_S_SURA_CUBE,
|
|
IG_S_GUILLOTINECROSS_CUBE,
|
|
IG_S_SHADOWCHASER_CUBE,
|
|
IG_S_RANGER_CUBE,
|
|
IG_S_WANDERER_CUBE,
|
|
IG_S_MINSTREL_CUBE,
|
|
IG_S_STAR_EMPEROR_CUBE,
|
|
IG_S_SOUL_REAPER_CUBE,
|
|
IG_S_KAGEROU_CUBE,
|
|
IG_S_OBORO_CUBE,
|
|
IG_S_REBELLION_CUBE,
|
|
IG_S_SUPERNOVICE_CUBE,
|
|
IG_S_DORAM_CUBE,
|
|
IG_S_MAMMOTH_CUBE,
|
|
IG_S_GEMSTONE_CUBE,
|
|
IG_S_PENE1_CUBE,
|
|
IG_S_PENE2_CUBE,
|
|
IG_S_TEMP1_CUBE,
|
|
IG_S_TEMP2_CUBE,
|
|
IG_BLACKSMITH_BLESS_BOX_3,
|
|
IG_SHADOW_HAMMER_BOX_3,
|
|
IG_EDP,
|
|
IG_MF_NOTELEPORT,
|
|
IG_MF_NORETURN,
|
|
IG_GIANT_FLY_WING,
|
|
IG_CLASS_SHADOW_WP_CUBE,
|
|
IG_CLASS_SHADOW_AM_CUBE,
|
|
IG_CLASS_SHADOW_SU_CUBE,
|
|
IG_CLASS_SHADOW_SD_CUBE,
|
|
IG_CLASS_SHADOW_PD_CUBE,
|
|
IG_CLASS_SHADOW_EA_CUBE,
|
|
IG_ENCHANT_STONE_BOX30,
|
|
IG_ENCHANT_STONE_BOX31,
|
|
IG_ENCHANT_STONE_BOX32,
|
|
IG_ANCIENT_HERO_BOX_2,
|
|
IG_ANCIENT_HERO_BOX_3,
|
|
IG_INTAKE_HAIR_BOX,
|
|
IG_PONYTAIL_HAIR_BOX,
|
|
IG_ALCHEMIST_BOX,
|
|
IG_GIANT_FLY_WING_2500,
|
|
IG_C_GIANT_FLY_WING_BOX,
|
|
IG_C_SIEGE_SCROLL_BOX1_10,
|
|
IG_C_SIEGE_SCROLL_BOX2_30,
|
|
IG_A_3_LIFE_POTION_10PACK,
|
|
IG_A_3_LIFE_POTION_PACK,
|
|
IG_A_INFINITY_10_BOX,
|
|
IG_A_INFINITY_BOX,
|
|
IG_C_ACID_B_50BOX,
|
|
IG_C_ACID_B_500_BOX,
|
|
IG_FIRST_AID_KIT_B,
|
|
IG_BOARDING_HALTER_BOX7,
|
|
IG_COSTAMA_EGG21,
|
|
IG_CRYSTAL_OF_GRUDGE,
|
|
IG_WING_OF_BAALZEBUB_BOX,
|
|
IG_POROROCA_SHOES_BUNDLE_A,
|
|
IG_LIAN_BUNDLE_B,
|
|
IG_SPRINT_BUNDLE_A,
|
|
IG_ETRAN_BUNDLE_A,
|
|
IG_ROSE_BUNDLE_A,
|
|
IG_ORLEANS_BUNDLE_A,
|
|
IG_BLACK_SHIBA_BUNDLE_A,
|
|
IG_VALKYRIE_BUNDLE_A,
|
|
IG_KARDUI_BUNDLE_A,
|
|
IG_CLOSEDMIND_BOX,
|
|
IG_COOKIE_BAG_B,
|
|
IG_SHADOW_BOX2,
|
|
IG_SHADOW_BOX,
|
|
IG_PHYSICAL_S_PACKAGE,
|
|
IG_MAGICAL_S_PACKAGE,
|
|
IG_POWER_BOX2,
|
|
IG_POWER_BOX1,
|
|
IG_MAIL_BREAKER_BOX1,
|
|
IG_HARDBACK_BOX1,
|
|
IG_SWORD_BREAKER_BOX1,
|
|
IG_BOW_OF_RUDRA_BOX1,
|
|
IG_BLOODY_ROAR_BOX1,
|
|
IG_BLOODY_IRON_BALL_BOX1,
|
|
IG_SIEGE_SUPPLY_BOX,
|
|
IG_PC_BANG_COIN_BOX1,
|
|
IG_ACIDBOMB_BOX50,
|
|
IG_PC_BANG_COIN_BOX2,
|
|
IG_PC_BANG_COIN_BOX4,
|
|
IG_FOOD_BOX_LV1,
|
|
IG_FOOD_BOX_LV2,
|
|
IG_FOOD_BOX_LV3,
|
|
IG_TRIAL_BOX,
|
|
IG_REPAIR_SCROLL_BOX10,
|
|
IG_HOCKEY_MASK_BOX,
|
|
IG_CLOCK_TOWER_CARD_BOX,
|
|
IG_GEFFENIA_CARD_BOX,
|
|
IG_OWL_CARD_BOX,
|
|
IG_GHOST_CARD_BOX,
|
|
IG_NIGHTMARE_CARD_BOX,
|
|
IG_STARTER_PACK,
|
|
IG_LOVE_ANGEL_BOX,
|
|
IG_SQUIRREL_BOX,
|
|
IG_GOGO_BOX,
|
|
IG_CRUSADER_CARD_BOX,
|
|
IG_ALCHEMIST_CARD_BOX,
|
|
IG_ROGUE_CARD_BOX,
|
|
IG_BARD_DANCER_CARD_BOX,
|
|
IG_SAGE_CARD_BOX,
|
|
IG_MONK_CARD_BOX,
|
|
IG_TW_VALENTINE_SCROLL,
|
|
IG_LOVE_ANGEL_BOX_1M,
|
|
IG_SQUIRREL_BOX_1M,
|
|
IG_GOGO_BOX_1M,
|
|
IG_WASTELAND_OUTLAW_BOX,
|
|
IG_LEVER_ACTION_RIFLE_BOX,
|
|
IG_SPIRITUAL_TUNIC_BOX,
|
|
IG_RECUPERATIVE_ARMOR_BOX,
|
|
IG_SHELTER_RESISTANCE_BOX,
|
|
IG_SYLPHID_MANTEAU_BOX,
|
|
IG_REFRESH_SHOES_BOX,
|
|
IG_TOAST_BOX,
|
|
IG_BUBBLEGUM_LOWER_BOX,
|
|
IG_TW_SCROLL01,
|
|
IG_PICTURE_DIARY_BOX,
|
|
IG_MINI_HEART_BOX,
|
|
IG_NEWCOMER_BOX,
|
|
IG_KID_BOX,
|
|
IG_MAGIC_CASTLE_BOX,
|
|
IG_BULGING_HEAD_BOX,
|
|
IG_PICTURE_DIARY_BOX_1M,
|
|
IG_MINI_HEART_BOX_1M,
|
|
IG_NEWCOMER_BOX_1M,
|
|
IG_KID_BOX_1M,
|
|
IG_MAGIC_CASTLE_BOX_1M,
|
|
IG_BULGING_HEAD_BOX_1M,
|
|
IG_F_LOVE_ANGEL_BOX,
|
|
IG_F_SQUIRREL_BOX,
|
|
IG_F_GOGO_BOX,
|
|
IG_F_LOVE_ANGEL_BOX_1M,
|
|
IG_F_SQUIRREL_BOX_1M,
|
|
IG_F_GOGO_BOX_1M,
|
|
IG_F_WASTELAND_OUTLAW_BOX,
|
|
IG_F_ALL_IN_ONE_RING_BOX,
|
|
IG_F_SPRITUAL_TUNIC_BOX,
|
|
IG_F_RECUPERATIVE_BOX,
|
|
IG_F_SHELTER_RESIST_BOX,
|
|
IG_F_SYLPHID_MANTEAU_BOX,
|
|
IG_F_TOAST_BOX,
|
|
IG_F_REPAIR_SCROLL_BOX,
|
|
IG_F_REPAIR_SCROLL_BOX10,
|
|
IG_F_HOCKEY_MASK_BOX,
|
|
IG_F_OBSERVER_BOX,
|
|
IG_F_NAGAN_BOX,
|
|
IG_F_SKEWER_BOX,
|
|
IG_F_SURVIVAL_ROD_BOX,
|
|
IG_F_QUADRILLE_BOX,
|
|
IG_F_GREAT_AXE_BOX,
|
|
IG_F_BLOODY_ROAR_BOX,
|
|
IG_F_HARDBACK_BOX,
|
|
IG_F_FIRE_BRAND_BOX,
|
|
IG_F_IMMATERIAL_SWORD_BOX,
|
|
IG_F_UNHOLY_TOUCH_BOX,
|
|
IG_F_CLACK_OF_SERVIVAL_BOX,
|
|
IG_F_MASQUERADE_BOX,
|
|
IG_F_ORC_HERO_HELM_BOX,
|
|
IG_F_EAR_OF_DEVIL_WING_BOX,
|
|
IG_F_DARK_BLINDFOLD_BOX,
|
|
IG_F_K_DROOPING_KITTY_BOX,
|
|
IG_F_CORSAIR_BOX,
|
|
IG_F_BLOODY_IRON_BALL_BOX,
|
|
IG_F_SPIRITUAL_RING_BOX,
|
|
IG_F_INFILTRATOR_BOX,
|
|
IG_F_MURAMASA_BOX,
|
|
IG_F_EXCALIBUR_BOX,
|
|
IG_F_COMBAT_KNIFE_BOX,
|
|
IG_F_COUNTER_DAGGER_BOX,
|
|
IG_F_KAISER_KNUCKLE_BOX,
|
|
IG_F_MIGHTY_STAFF_BOX,
|
|
IG_F_RIGHT_EPSILON_BOX,
|
|
IG_F_BALISTAR_BOX,
|
|
IG_F_DIARY_OF_GREAT_SAGE,
|
|
IG_F_ASURA_BOX,
|
|
IG_F_APPLE_OF_ARCHER_BOX,
|
|
IG_F_BUNNY_BAND_BOX,
|
|
IG_F_SAHKKAT_BOX,
|
|
IG_F_LORD_CIRCLET_BOX,
|
|
IG_F_ELVEN_EARS_BOX,
|
|
IG_F_STEEL_FLOWER_BOX,
|
|
IG_F_CRITICAL_RING_BOX,
|
|
IG_F_EARRING_BOX,
|
|
IG_F_RING_BOX,
|
|
IG_F_NECKLACE_BOX,
|
|
IG_F_GLOVE_BOX,
|
|
IG_F_BROOCH_BOX,
|
|
IG_F_ROSARY_BOX,
|
|
IG_F_SAFETY_RING_BOX,
|
|
IG_F_VESPER_CORE_BOX01,
|
|
IG_F_VESPER_CORE_BOX02,
|
|
IG_F_VESPER_CORE_BOX03,
|
|
IG_F_VESPER_CORE_BOX04,
|
|
IG_F_VIGORGRA_PACKAGE1,
|
|
IG_F_VIGORGRA_PACKAGE2,
|
|
IG_F_VIGORGRA_PACKAGE5,
|
|
IG_F_VIGORGRA_PACKAGE6,
|
|
IG_F_VIGORGRA_PACKAGE7,
|
|
IG_F_VIGORGRA_PACKAGE8,
|
|
IG_F_VIGORGRA_PACKAGE9,
|
|
IG_F_VIGORGRA_PACKAGE10,
|
|
IG_F_VIGORGRA_PACKAGE11,
|
|
IG_F_VIGORGRA_PACKAGE12,
|
|
IG_F_ASPERSIO_5_SCROLL_BOX,
|
|
IG_F_ASPERSIO_5_BOX30,
|
|
IG_F_ASPERSIO_5_BOX50,
|
|
IG_HEALING_STAFF_BOX,
|
|
IG_PRAXINUS_BOX,
|
|
IG_F_PET_EGG_SCROLL9,
|
|
IG_F_MAGESTIC_GOAT_BOX,
|
|
IG_F_PET_EGG_SCROLL3,
|
|
IG_F_EXECUTIONER_BOX,
|
|
IG_F_CUTLAS_BOX,
|
|
IG_F_MOONLIGHT_SWORD_BOX,
|
|
IG_F_SPANNER_BOX,
|
|
IG_F_SOLAR_SWORD_BOX,
|
|
IG_F_TOMAHAWK_BOX,
|
|
IG_F_BOW_OF_RUDRA_BOX,
|
|
IG_F_POLE_AXE_BOX,
|
|
IG_THOUGHTFUL_HAT_BOX,
|
|
IG_F_THOUGHTFUL_HAT_BOX,
|
|
IG_E_THOUGHTFUL_HAT_BOX,
|
|
IG_ZODIAC_DIADEM_PACK,
|
|
IG_ZODIAC_CROWN_PACK,
|
|
IG_DUN_VOUCHER_BOX1,
|
|
IG_DUN_VOUCHER_BOX2,
|
|
IG_BLUEBOXOFQUESTIONS,
|
|
IG_ENCHANT_STONE_BOX33,
|
|
|
|
IG_MAX,
|
|
};
|
|
|
|
/// Enum for bound/sell restricted selling
|
|
enum e_itemshop_restrictions {
|
|
ISR_NONE = 0x0,
|
|
ISR_BOUND = 0x1,
|
|
ISR_SELLABLE = 0x2,
|
|
ISR_BOUND_SELLABLE = 0x4,
|
|
ISR_BOUND_GUILDLEADER_ONLY = 0x8,
|
|
};
|
|
|
|
/// Enum for item drop effects
|
|
enum e_item_drop_effect : uint16 {
|
|
DROPEFFECT_NONE = 0,
|
|
DROPEFFECT_CLIENT,
|
|
#if PACKETVER < 20200304
|
|
DROPEFFECT_WHITE_PILLAR,
|
|
#endif
|
|
DROPEFFECT_BLUE_PILLAR,
|
|
DROPEFFECT_YELLOW_PILLAR,
|
|
DROPEFFECT_PURPLE_PILLAR,
|
|
#if PACKETVER < 20200304
|
|
DROPEFFECT_ORANGE_PILLAR,
|
|
#else
|
|
DROPEFFECT_GREEN_PILLAR,
|
|
#endif
|
|
#if PACKETVER >= 20200304
|
|
DROPEFFECT_RED_PILLAR,
|
|
#endif
|
|
DROPEFFECT_MAX,
|
|
#if PACKETVER >= 20200304
|
|
// White was removed in 2020-03-04
|
|
DROPEFFECT_WHITE_PILLAR,
|
|
// Orange was replaced by green in 2020-03-04
|
|
DROPEFFECT_ORANGE_PILLAR,
|
|
#else
|
|
// Not supported before 2020-03-04
|
|
DROPEFFECT_GREEN_PILLAR,
|
|
DROPEFFECT_RED_PILLAR,
|
|
#endif
|
|
};
|
|
|
|
/// Enum for items with delayed consumption
|
|
enum e_delay_consume : uint8 {
|
|
DELAYCONSUME_NONE = 0x0,
|
|
DELAYCONSUME_TEMP = 0x1, // Items that are not consumed immediately upon double-click
|
|
DELAYCONSUME_NOCONSUME = 0x2, // Items that are not removed upon double-click
|
|
};
|
|
|
|
/// Item combo struct
|
|
struct s_item_combo {
|
|
std::vector<t_itemid> nameid;
|
|
script_code *script;
|
|
uint16 id;
|
|
|
|
~s_item_combo() {
|
|
if (this->script) {
|
|
script_free_code(this->script);
|
|
this->script = nullptr;
|
|
}
|
|
|
|
this->nameid.clear();
|
|
}
|
|
};
|
|
|
|
class ComboDatabase : public TypesafeYamlDatabase<uint16, s_item_combo> {
|
|
private:
|
|
uint16 combo_num;
|
|
uint16 find_combo_id( const std::vector<t_itemid>& items );
|
|
|
|
public:
|
|
ComboDatabase() : TypesafeYamlDatabase("COMBO_DB", 1) {
|
|
|
|
}
|
|
|
|
void clear() override{
|
|
TypesafeYamlDatabase::clear();
|
|
this->combo_num = 0;
|
|
}
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode(const ryml::NodeRef& node) override;
|
|
void loadingFinished() override;
|
|
};
|
|
|
|
extern ComboDatabase itemdb_combo;
|
|
|
|
// Struct for item random option [Secret]
|
|
struct s_random_opt_data
|
|
{
|
|
uint16 id;
|
|
std::string name;
|
|
script_code *script;
|
|
|
|
~s_random_opt_data() {
|
|
if (script)
|
|
script_free_code(script);
|
|
}
|
|
};
|
|
|
|
/// Struct for random option group entry
|
|
struct s_random_opt_group_entry {
|
|
uint16 id;
|
|
int16 min_value, max_value;
|
|
int8 param;
|
|
uint16 chance;
|
|
};
|
|
|
|
/// Struct for Random Option Group
|
|
struct s_random_opt_group {
|
|
uint16 id;
|
|
std::string name;
|
|
std::map<uint16, std::vector<std::shared_ptr<s_random_opt_group_entry>>> slots;
|
|
uint16 max_random;
|
|
std::vector<std::shared_ptr<s_random_opt_group_entry>> random_options;
|
|
|
|
public:
|
|
void apply( struct item& item );
|
|
};
|
|
|
|
class RandomOptionDatabase : public TypesafeYamlDatabase<uint16, s_random_opt_data> {
|
|
public:
|
|
RandomOptionDatabase() : TypesafeYamlDatabase("RANDOM_OPTION_DB", 1) {
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode(const ryml::NodeRef& node) override;
|
|
void loadingFinished() override;
|
|
|
|
// Additional
|
|
bool option_exists(std::string name);
|
|
bool option_get_id(std::string name, uint16 &id);
|
|
};
|
|
|
|
extern RandomOptionDatabase random_option_db;
|
|
|
|
class RandomOptionGroupDatabase : public TypesafeYamlDatabase<uint16, s_random_opt_group> {
|
|
public:
|
|
RandomOptionGroupDatabase() : TypesafeYamlDatabase("RANDOM_OPTION_GROUP", 1) {
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode(const ryml::NodeRef& node) override;
|
|
|
|
// Additional
|
|
bool add_option(const ryml::NodeRef& node, std::shared_ptr<s_random_opt_group_entry> &entry);
|
|
bool option_exists(std::string name);
|
|
bool option_get_id(std::string name, uint16 &id);
|
|
};
|
|
|
|
extern RandomOptionGroupDatabase random_option_group;
|
|
|
|
/// Struct of item group entry
|
|
struct s_item_group_entry
|
|
{
|
|
t_itemid nameid; /// Item ID
|
|
uint16 rate;
|
|
uint16 duration, /// Duration if item as rental item (in minutes)
|
|
amount; /// Amount of item will be obtained
|
|
bool isAnnounced, /// Broadcast if player get this item
|
|
GUID, /// Gives Unique ID for items in each box opened
|
|
isStacked, /// Whether stackable items are given stacked
|
|
isNamed; /// Named the item (if possible)
|
|
uint8 bound; /// Makes the item as bound item (according to bound type)
|
|
std::shared_ptr<s_random_opt_group> randomOptionGroup;
|
|
uint16 refineMinimum;
|
|
uint16 refineMaximum;
|
|
};
|
|
|
|
/// Struct of random group
|
|
struct s_item_group_random
|
|
{
|
|
uint32 total_rate;
|
|
std::unordered_map<uint32, std::shared_ptr<s_item_group_entry>> data; /// index, s_item_group_entry
|
|
|
|
std::shared_ptr<s_item_group_entry> get_random_itemsubgroup();
|
|
};
|
|
|
|
/// Struct of item group that will be used for db
|
|
struct s_item_group_db
|
|
{
|
|
uint16 id; /// Item Group ID
|
|
std::unordered_map<uint16, std::shared_ptr<s_item_group_random>> random; /// group ID, s_item_group_random
|
|
};
|
|
|
|
/// Struct of Roulette db
|
|
struct s_roulette_db {
|
|
t_itemid *nameid[MAX_ROULETTE_LEVEL]; /// Item ID
|
|
unsigned short *qty[MAX_ROULETTE_LEVEL]; /// Amount of Item ID
|
|
int *flag[MAX_ROULETTE_LEVEL]; /// Whether the item is for loss or win
|
|
int items[MAX_ROULETTE_LEVEL]; /// Number of items in the list for each
|
|
};
|
|
extern struct s_roulette_db rd;
|
|
|
|
///Main item data struct
|
|
struct item_data
|
|
{
|
|
t_itemid nameid;
|
|
std::string name, ename;
|
|
|
|
uint32 value_buy;
|
|
uint32 value_sell;
|
|
item_types type;
|
|
uint8 subtype;
|
|
int maxchance; //For logs, for external game info, for scripts: Max drop chance of this item (e.g. 0.01% , etc.. if it = 0, then monsters don't drop it, -1 denotes items sold in shops only) [Lupus]
|
|
uint8 sex;
|
|
uint32 equip;
|
|
uint32 weight;
|
|
uint32 atk;
|
|
uint32 def;
|
|
uint16 range;
|
|
uint16 slots;
|
|
uint32 look;
|
|
uint16 elv;
|
|
uint16 weapon_level;
|
|
uint16 armor_level;
|
|
t_itemid view_id;
|
|
uint16 elvmax; ///< Maximum level for this item
|
|
#ifdef RENEWAL
|
|
uint32 matk;
|
|
#endif
|
|
|
|
//Lupus: I rearranged order of these fields due to compatibility with ITEMINFO script command
|
|
// some script commands should be revised as well...
|
|
uint64 class_base[3]; //Specifies if the base can wear this item (split in 3 indexes per type: 1-1, 2-1, 2-2)
|
|
uint16 class_upper; //Specifies if the class-type can equip it (See e_item_job)
|
|
struct {
|
|
int chance;
|
|
int id;
|
|
} mob[MAX_SEARCH]; //Holds the mobs that have the highest drop rate for this item. [Skotlex]
|
|
struct script_code *script; //Default script for everything.
|
|
struct script_code *equip_script; //Script executed once when equipping.
|
|
struct script_code *unequip_script;//Script executed once when unequipping.
|
|
struct {
|
|
unsigned available : 1;
|
|
uint32 no_equip;
|
|
unsigned no_refine : 1; // [celest]
|
|
unsigned delay_consume; // [Skotlex]
|
|
struct {
|
|
bool drop, trade, trade_partner, sell, cart, storage, guild_storage, mail, auction;
|
|
} trade_restriction; //Item restrictions mask [Skotlex]
|
|
unsigned autoequip: 1;
|
|
bool buyingstore;
|
|
bool dead_branch; // As dead branch item. Logged at `branchlog` table and cannot be used at 'nobranch' mapflag [Cydh]
|
|
bool group; // As item group container [Cydh]
|
|
unsigned guid : 1; // This item always be attached with GUID and make it as bound item! [Cydh]
|
|
bool broadcast; ///< Will be broadcasted if someone obtain the item [Cydh]
|
|
bool bindOnEquip; ///< Set item as bound when equipped
|
|
e_item_drop_effect dropEffect; ///< Drop Effect Mode
|
|
unsigned gradable : 1;
|
|
} flag;
|
|
struct {// item stacking limitation
|
|
uint16 amount;
|
|
bool inventory, cart, storage, guild_storage;
|
|
} stack;
|
|
struct {
|
|
uint16 override;
|
|
bool sitting;
|
|
} item_usage;
|
|
short gm_lv_trade_override; //GM-level to override trade_restriction
|
|
std::vector<std::shared_ptr<s_item_combo>> combos;
|
|
struct {
|
|
uint32 duration;
|
|
sc_type sc; ///< Use delay group if any instead using player's item_delay data [Cydh]
|
|
} delay;
|
|
|
|
~item_data() {
|
|
if (this->script){
|
|
script_free_code(this->script);
|
|
this->script = nullptr;
|
|
}
|
|
|
|
if (this->equip_script){
|
|
script_free_code(this->equip_script);
|
|
this->equip_script = nullptr;
|
|
}
|
|
|
|
if (this->unequip_script){
|
|
script_free_code(this->unequip_script);
|
|
this->unequip_script = nullptr;
|
|
}
|
|
|
|
this->combos.clear();
|
|
}
|
|
|
|
bool isStackable();
|
|
int inventorySlotNeeded(int quantity);
|
|
};
|
|
|
|
class ItemDatabase : public TypesafeCachedYamlDatabase<t_itemid, item_data> {
|
|
private:
|
|
std::unordered_map<std::string, std::shared_ptr<item_data>> nameToItemDataMap;
|
|
std::unordered_map<std::string, std::shared_ptr<item_data>> aegisNameToItemDataMap;
|
|
|
|
e_sex defaultGender( const ryml::NodeRef& node, std::shared_ptr<item_data> id );
|
|
|
|
std::string create_item_link(struct item& item, std::shared_ptr<item_data>& data);
|
|
|
|
struct s_pricevalue {
|
|
bool has_buy;
|
|
bool has_sell;
|
|
};
|
|
|
|
std::unordered_map<t_itemid, s_pricevalue> hasPriceValue;
|
|
|
|
public:
|
|
ItemDatabase() : TypesafeCachedYamlDatabase("ITEM_DB", 3, 1) {
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode(const ryml::NodeRef& node) override;
|
|
void loadingFinished() override;
|
|
void clear() override{
|
|
TypesafeCachedYamlDatabase::clear();
|
|
|
|
this->nameToItemDataMap.clear();
|
|
this->aegisNameToItemDataMap.clear();
|
|
}
|
|
|
|
// Additional
|
|
std::shared_ptr<item_data> searchname( const char* name );
|
|
std::shared_ptr<item_data> search_aegisname( const char *name );
|
|
std::string create_item_link(struct item& item);
|
|
std::string create_item_link( std::shared_ptr<item_data>& data );
|
|
std::string create_item_link_for_mes( std::shared_ptr<item_data>& data, bool use_brackets, const char* name );
|
|
};
|
|
|
|
extern ItemDatabase item_db;
|
|
|
|
class ItemGroupDatabase : public TypesafeCachedYamlDatabase<uint16, s_item_group_db> {
|
|
public:
|
|
ItemGroupDatabase() : TypesafeCachedYamlDatabase("ITEM_GROUP_DB", 3, 1) {
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation() override;
|
|
uint64 parseBodyNode(const ryml::NodeRef& node) override;
|
|
void loadingFinished() override;
|
|
|
|
// Additional
|
|
bool item_exists(uint16 group_id, t_itemid nameid);
|
|
int16 item_exists_pc(map_session_data *sd, uint16 group_id);
|
|
t_itemid get_random_item_id(uint16 group_id, uint8 sub_group);
|
|
std::shared_ptr<s_item_group_entry> get_random_entry(uint16 group_id, uint8 sub_group);
|
|
uint8 pc_get_itemgroup(uint16 group_id, bool identify, map_session_data *sd);
|
|
};
|
|
|
|
extern ItemGroupDatabase itemdb_group;
|
|
|
|
struct s_laphine_synthesis_requirement{
|
|
t_itemid item_id;
|
|
uint16 amount;
|
|
};
|
|
|
|
struct s_laphine_synthesis{
|
|
t_itemid item_id;
|
|
uint16 minimumRefine;
|
|
uint16 maximumRefine;
|
|
uint16 requiredRequirements;
|
|
std::unordered_map<t_itemid, std::shared_ptr<s_laphine_synthesis_requirement>> requirements;
|
|
uint16 rewardGroupId;
|
|
};
|
|
|
|
class LaphineSynthesisDatabase : public TypesafeYamlDatabase<t_itemid, s_laphine_synthesis>{
|
|
public:
|
|
LaphineSynthesisDatabase() : TypesafeYamlDatabase( "LAPHINE_SYNTHESIS_DB", 1 ){
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation();
|
|
uint64 parseBodyNode( const ryml::NodeRef& node );
|
|
};
|
|
|
|
extern LaphineSynthesisDatabase laphine_synthesis_db;
|
|
|
|
struct s_laphine_upgrade{
|
|
t_itemid item_id;
|
|
std::vector<t_itemid> target_item_ids;
|
|
uint16 minimumRefine;
|
|
uint16 maximumRefine;
|
|
uint16 requiredRandomOptions;
|
|
bool cardsAllowed;
|
|
std::shared_ptr<s_random_opt_group> randomOptionGroup;
|
|
uint16 resultRefine;
|
|
uint16 resultRefineMinimum;
|
|
uint16 resultRefineMaximum;
|
|
};
|
|
|
|
class LaphineUpgradeDatabase : public TypesafeYamlDatabase<t_itemid, s_laphine_upgrade>{
|
|
public:
|
|
LaphineUpgradeDatabase() : TypesafeYamlDatabase( "LAPHINE_UPGRADE_DB", 1 ){
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation();
|
|
uint64 parseBodyNode( const ryml::NodeRef& node );
|
|
};
|
|
|
|
extern LaphineUpgradeDatabase laphine_upgrade_db;
|
|
|
|
struct s_item_reform_base{
|
|
t_itemid item_id;
|
|
uint16 minimumRefine;
|
|
uint16 maximumRefine;
|
|
uint16 requiredRandomOptions;
|
|
bool cardsAllowed;
|
|
std::unordered_map<t_itemid, uint16> materials;
|
|
t_itemid resultItemId;
|
|
int16 refineChange;
|
|
std::shared_ptr<s_random_opt_group> randomOptionGroup;
|
|
bool clearSlots;
|
|
bool removeEnchantgrade;
|
|
};
|
|
|
|
struct s_item_reform{
|
|
t_itemid item_id;
|
|
std::unordered_map<t_itemid, std::shared_ptr<s_item_reform_base>> base_items;
|
|
};
|
|
|
|
class ItemReformDatabase : public TypesafeYamlDatabase<t_itemid, s_item_reform>{
|
|
public:
|
|
ItemReformDatabase() : TypesafeYamlDatabase( "ITEM_REFORM_DB", 1 ){
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation();
|
|
uint64 parseBodyNode( const ryml::NodeRef& node );
|
|
};
|
|
|
|
extern ItemReformDatabase item_reform_db;
|
|
|
|
struct s_item_enchant_normal_sub{
|
|
t_itemid item_id;
|
|
uint32 chance;
|
|
};
|
|
|
|
struct s_item_enchant_normal{
|
|
uint16 enchantgrade;
|
|
std::unordered_map<t_itemid, std::shared_ptr<s_item_enchant_normal_sub>> enchants;
|
|
};
|
|
|
|
struct s_item_enchant_perfect{
|
|
t_itemid item_id;
|
|
uint32 zeny;
|
|
std::unordered_map<t_itemid, uint16> materials;
|
|
};
|
|
|
|
struct s_item_enchant_upgrade{
|
|
t_itemid enchant_item_id;
|
|
t_itemid upgrade_item_id;
|
|
uint32 zeny;
|
|
std::unordered_map<t_itemid, uint16> materials;
|
|
};
|
|
|
|
struct s_item_enchant_slot{
|
|
uint16 slot;
|
|
struct{
|
|
uint32 zeny;
|
|
std::unordered_map<t_itemid, uint16> materials;
|
|
uint32 chance;
|
|
std::unordered_map<uint16, uint32> enchantgradeChanceIncrease;
|
|
std::unordered_map<uint16, std::shared_ptr<s_item_enchant_normal>> enchants;
|
|
} normal;
|
|
struct{
|
|
std::unordered_map<t_itemid, std::shared_ptr<s_item_enchant_perfect>> enchants;
|
|
} perfect;
|
|
struct{
|
|
std::unordered_map<t_itemid, std::shared_ptr<s_item_enchant_upgrade>> enchants;
|
|
} upgrade;
|
|
};
|
|
|
|
struct s_item_enchant{
|
|
uint64 id;
|
|
std::vector<t_itemid> target_item_ids;
|
|
uint16 minimumRefine;
|
|
uint16 minimumEnchantgrade;
|
|
bool allowRandomOptions;
|
|
struct {
|
|
uint32 zeny;
|
|
std::unordered_map<t_itemid, uint16> materials;
|
|
uint32 chance;
|
|
} reset;
|
|
std::vector<uint16> order;
|
|
std::unordered_map<uint16, std::shared_ptr<s_item_enchant_slot>> slots;
|
|
};
|
|
|
|
class ItemEnchantDatabase : public TypesafeYamlDatabase<uint64, s_item_enchant>{
|
|
private:
|
|
bool parseMaterials( const ryml::NodeRef& node, std::unordered_map<t_itemid, uint16>& materials );
|
|
|
|
public:
|
|
ItemEnchantDatabase() : TypesafeYamlDatabase( "ITEM_ENCHANT_DB", 1 ){
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation();
|
|
uint64 parseBodyNode( const ryml::NodeRef& node );
|
|
};
|
|
|
|
extern ItemEnchantDatabase item_enchant_db;
|
|
|
|
struct s_item_package_item{
|
|
t_itemid item_id;
|
|
uint16 amount;
|
|
uint16 rentalhours;
|
|
uint16 refine;
|
|
std::shared_ptr<s_random_opt_group> randomOptionGroup;
|
|
};
|
|
|
|
struct s_item_package_group{
|
|
uint32 groupIndex;
|
|
std::unordered_map<t_itemid, std::shared_ptr<s_item_package_item>> items;
|
|
};
|
|
|
|
struct s_item_package{
|
|
t_itemid item_id;
|
|
std::unordered_map<uint32, std::shared_ptr<s_item_package_group>> groups;
|
|
};
|
|
|
|
class ItemPackageDatabase : public TypesafeYamlDatabase<t_itemid, s_item_package>{
|
|
public:
|
|
ItemPackageDatabase() : TypesafeYamlDatabase( "ITEM_PACKAGE_DB", 1 ){
|
|
|
|
}
|
|
|
|
const std::string getDefaultLocation();
|
|
uint64 parseBodyNode( const ryml::NodeRef& node );
|
|
};
|
|
|
|
extern ItemPackageDatabase item_package_db;
|
|
|
|
uint16 itemdb_searchname_array(std::map<t_itemid, std::shared_ptr<item_data>> &data, uint16 size, const char *str);
|
|
struct item_data* itemdb_search(t_itemid nameid);
|
|
|
|
[[deprecated("Please upgrade your code to item_db.exists() or item_db.find()! This function will be dropped soon!")]]
|
|
std::shared_ptr<item_data> itemdb_exists(t_itemid nameid);
|
|
|
|
#define itemdb_name(n) itemdb_search(n)->name.c_str()
|
|
#define itemdb_ename(n) itemdb_search(n)->ename.c_str()
|
|
#define itemdb_type(n) itemdb_search(n)->type
|
|
#define itemdb_subtype(n) itemdb_search(n)->subtype
|
|
#define itemdb_atk(n) itemdb_search(n)->atk
|
|
#define itemdb_def(n) itemdb_search(n)->def
|
|
#define itemdb_look(n) itemdb_search(n)->look
|
|
#define itemdb_weight(n) itemdb_search(n)->weight
|
|
#define itemdb_equip(n) itemdb_search(n)->equip
|
|
#define itemdb_usescript(n) itemdb_search(n)->script
|
|
#define itemdb_equipscript(n) itemdb_search(n)->script
|
|
#define itemdb_wlv(n) itemdb_search(n)->weapon_level
|
|
#define itemdb_range(n) itemdb_search(n)->range
|
|
#define itemdb_slots(n) itemdb_search(n)->slots
|
|
#define itemdb_available(n) (itemdb_search(n)->flag.available)
|
|
#define itemdb_traderight(n) (itemdb_search(n)->flag.trade_restriction)
|
|
#define itemdb_viewid(n) (itemdb_search(n)->view_id)
|
|
#define itemdb_autoequip(n) (itemdb_search(n)->flag.autoequip)
|
|
#define itemdb_dropeffect(n) (itemdb_search(n)->flag.dropEffect)
|
|
const char* itemdb_typename(enum item_types type);
|
|
const char *itemdb_typename_ammo (e_ammo_type ammo);
|
|
|
|
#define itemdb_value_buy(n) itemdb_search(n)->value_buy
|
|
#define itemdb_value_sell(n) itemdb_search(n)->value_sell
|
|
//Item trade restrictions [Skotlex]
|
|
bool itemdb_isdropable_sub(struct item_data *itd, int gmlv, int unused);
|
|
bool itemdb_cantrade_sub(struct item_data *itd, int gmlv, int gmlv2);
|
|
bool itemdb_canpartnertrade_sub(struct item_data *itd, int gmlv, int gmlv2);
|
|
bool itemdb_cansell_sub(struct item_data *itd, int gmlv, int unused);
|
|
bool itemdb_cancartstore_sub(struct item_data *itd, int gmlv, int unused);
|
|
bool itemdb_canstore_sub(struct item_data *itd, int gmlv, int unused);
|
|
bool itemdb_canguildstore_sub(struct item_data *itd, int gmlv, int unused);
|
|
bool itemdb_canmail_sub(struct item_data *itd, int gmlv, int unused);
|
|
bool itemdb_canauction_sub(struct item_data *itd, int gmlv, int unused);
|
|
bool itemdb_isrestricted(struct item* item, int gmlv, int gmlv2, bool (*func)(struct item_data*, int, int));
|
|
bool itemdb_ishatched_egg(struct item* item);
|
|
#define itemdb_isdropable(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_isdropable_sub)
|
|
#define itemdb_cantrade(item, gmlv, gmlv2) itemdb_isrestricted(item, gmlv, gmlv2, itemdb_cantrade_sub)
|
|
#define itemdb_canpartnertrade(item, gmlv, gmlv2) itemdb_isrestricted(item, gmlv, gmlv2, itemdb_canpartnertrade_sub)
|
|
#define itemdb_cansell(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_cansell_sub)
|
|
#define itemdb_cancartstore(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_cancartstore_sub)
|
|
#define itemdb_canstore(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_canstore_sub)
|
|
#define itemdb_canguildstore(item, gmlv) itemdb_isrestricted(item , gmlv, 0, itemdb_canguildstore_sub)
|
|
#define itemdb_canmail(item, gmlv) itemdb_isrestricted(item , gmlv, 0, itemdb_canmail_sub)
|
|
#define itemdb_canauction(item, gmlv) itemdb_isrestricted(item , gmlv, 0, itemdb_canauction_sub)
|
|
|
|
bool itemdb_isequip2(struct item_data *id);
|
|
#define itemdb_isequip(nameid) itemdb_isequip2(itemdb_search(nameid))
|
|
char itemdb_isidentified(t_itemid nameid);
|
|
bool itemdb_isstackable2(struct item_data *id);
|
|
#define itemdb_isstackable(nameid) itemdb_isstackable2(itemdb_search(nameid))
|
|
bool itemdb_isNoEquip(struct item_data *id, uint16 m);
|
|
|
|
bool itemdb_parse_roulette_db(void);
|
|
|
|
void itemdb_gen_itemmoveinfo();
|
|
|
|
void itemdb_reload(void);
|
|
|
|
void do_final_itemdb(void);
|
|
void do_init_itemdb(void);
|
|
|
|
#endif /* ITEMDB_HPP */
|