itemdb.hpp 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440
  1. // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
  2. // For more information, see LICENCE in the main folder
  3. #ifndef ITEMDB_HPP
  4. #define ITEMDB_HPP
  5. #include <map>
  6. #include <vector>
  7. #include "../common/database.hpp"
  8. #include "../common/db.hpp"
  9. #include "../common/malloc.hpp"
  10. #include "../common/mmo.hpp" // ITEM_NAME_LENGTH
  11. #include "script.hpp"
  12. #include "status.hpp"
  13. enum e_ammo_type : uint8;
  14. ///Use apple for unknown items.
  15. const t_itemid UNKNOWN_ITEM_ID = 512;
  16. /// The maximum number of item delays
  17. #define MAX_ITEMDELAYS 10
  18. ///Designed for search functions, species max number of matches to display.
  19. #ifndef MAX_SEARCH
  20. #define MAX_SEARCH 10
  21. #endif
  22. #define MAX_ROULETTE_LEVEL 7 /** client-defined value **/
  23. #define MAX_ROULETTE_COLUMNS 9 /** client-defined value **/
  24. const t_itemid CARD0_FORGE = 0x00FF;
  25. const t_itemid CARD0_CREATE = 0x00FE;
  26. const t_itemid CARD0_PET = 0x0100;
  27. ///Marks if the card0 given is "special" (non-item id used to mark pets/created items. [Skotlex]
  28. #define itemdb_isspecial(i) (i == CARD0_FORGE || i == CARD0_CREATE || i == CARD0_PET)
  29. ///Enum of item id (for hardcoded purpose)
  30. enum item_itemid : t_itemid
  31. {
  32. ITEMID_DUMMY = 499,
  33. ITEMID_RED_POTION = 501,
  34. ITEMID_YELLOW_POTION = 503,
  35. ITEMID_WHITE_POTION = 504,
  36. ITEMID_BLUE_POTION = 505,
  37. ITEMID_APPLE = 512,
  38. ITEMID_HOLY_WATER = 523,
  39. ITEMID_PUMPKIN = 535,
  40. ITEMID_RED_SLIM_POTION = 545,
  41. ITEMID_YELLOW_SLIM_POTION = 546,
  42. ITEMID_WHITE_SLIM_POTION = 547,
  43. ITEMID_WING_OF_FLY = 601,
  44. ITEMID_WING_OF_BUTTERFLY = 602,
  45. ITEMID_ANODYNE = 605,
  46. ITEMID_ALOEBERA = 606,
  47. ITEMID_MAGNIFIER = 611,
  48. ITEMID_POISON_BOTTLE = 678,
  49. ITEMID_EMPTY_BOTTLE = 713,
  50. ITEMID_EMPERIUM = 714,
  51. ITEMID_RED_GEMSTONE = 716,
  52. ITEMID_BLUE_GEMSTONE = 717,
  53. ITEMID_ORIDECON_STONE = 756,
  54. ITEMID_ALCOHOL = 970,
  55. ITEMID_ORIDECON = 984,
  56. ITEMID_ANVIL = 986,
  57. ITEMID_ORIDECON_ANVIL = 987,
  58. ITEMID_GOLDEN_ANVIL = 988,
  59. ITEMID_EMPERIUM_ANVIL = 989,
  60. ITEMID_BLOODY_RED = 990,
  61. ITEMID_CRYSTAL_BLUE = 991,
  62. ITEMID_WIND_OF_VERDURE = 992,
  63. ITEMID_YELLOW_LIVE = 993,
  64. ITEMID_FLAME_HEART = 994,
  65. ITEMID_MISTIC_FROZEN = 995,
  66. ITEMID_ROUGH_WIND = 996,
  67. ITEMID_GREAT_NATURE = 997,
  68. ITEMID_IRON = 998,
  69. ITEMID_STEEL = 999,
  70. ITEMID_STAR_CRUMB = 1000,
  71. ITEMID_IRON_ORE = 1002,
  72. ITEMID_PHRACON = 1010,
  73. ITEMID_EMVERETARCON = 1011,
  74. ITEMID_TRAP = 1065,
  75. ITEMID_ANGRA_MANYU = 1599,
  76. ITEMID_PAINT_BRUSH = 6122,
  77. ITEMID_MAGIC_GEAR_FUEL = 6146,
  78. ITEMID_NEW_INSURANCE = 6413,
  79. ITEMID_STRANGE_EMBRYO = 6415,
  80. ITEMID_BLACKSMITH_BLESSING = 6635,
  81. ITEMID_STONE = 7049,
  82. ITEMID_FIRE_BOTTLE = 7135,
  83. ITEMID_ACID_BOTTLE = 7136,
  84. ITEMID_MAN_EATER_BOTTLE = 7137,
  85. ITEMID_MINI_BOTTLE = 7138,
  86. ITEMID_COATING_BOTTLE = 7139,
  87. ITEMID_FRAGMENT_OF_CRYSTAL = 7321,
  88. ITEMID_SKULL_ = 7420,
  89. ITEMID_TRAP_ALLOY = 7940,
  90. ITEMID_COOKIE_BAT = 11605,
  91. ITEMID_MERCENARY_RED_POTION = 12184,
  92. ITEMID_MERCENARY_BLUE_POTION = 12185,
  93. ITEMID_GIANT_FLY_WING = 12212,
  94. ITEMID_NEURALIZER = 12213,
  95. ITEMID_M_CENTER_POTION = 12241,
  96. ITEMID_M_AWAKENING_POTION = 12242,
  97. ITEMID_M_BERSERK_POTION = 12243,
  98. ITEMID_N_FLY_WING = 12323,
  99. ITEMID_N_BUTTERFLY_WING = 12324,
  100. ITEMID_NOVICE_MAGNIFIER = 12325,
  101. ITEMID_ANCILLA = 12333,
  102. ITEMID_DUN_TELE_SCROLL3 = 12352,
  103. ITEMID_REINS_OF_MOUNT = 12622,
  104. ITEMID_NOBLE_NAMEPLATE = 12705,
  105. ITEMID_SILVER_BULLET = 13201,
  106. ITEMID_PURIFICATION_BULLET = 13220,
  107. ITEMID_SILVER_BULLET_ = 13221,
  108. ITEMID_DUN_TELE_SCROLL1 = 14527,
  109. ITEMID_DUN_TELE_SCROLL2 = 14581,
  110. ITEMID_WOB_RUNE = 14582,
  111. ITEMID_WOB_SCHWALTZ = 14583,
  112. ITEMID_WOB_RACHEL = 14584,
  113. ITEMID_WOB_LOCAL = 14585,
  114. ITEMID_SIEGE_TELEPORT_SCROLL = 14591,
  115. ITEMID_INVENTORY_EX_EVT = 25791,
  116. ITEMID_INVENTORY_EX_DIS = 25792,
  117. ITEMID_INVENTORY_EX = 25793,
  118. ITEMID_WL_MB_SG = 100065,
  119. ITEMID_HOMUNCULUS_SUPPLEMENT = 100371,
  120. };
  121. ///Rune Knight
  122. enum rune_item_list : t_itemid
  123. {
  124. ITEMID_NAUTHIZ = 12725,
  125. ITEMID_RAIDO,
  126. ITEMID_BERKANA,
  127. ITEMID_ISA,
  128. ITEMID_OTHILA,
  129. ITEMID_URUZ,
  130. ITEMID_THURISAZ,
  131. ITEMID_WYRD,
  132. ITEMID_HAGALAZ,
  133. ITEMID_LUX_ANIMA = 22540,
  134. };
  135. ///Mechanic
  136. enum mechanic_item_list : t_itemid
  137. {
  138. ITEMID_ACCELERATOR = 2800,
  139. ITEMID_SUICIDAL_DEVICE = 2802,
  140. ITEMID_SHAPE_SHIFTER,
  141. ITEMID_COOLING_DEVICE,
  142. ITEMID_MAGNETIC_FIELD_GENERATOR,
  143. ITEMID_BARRIER_BUILDER,
  144. ITEMID_REPAIR_KIT,
  145. ITEMID_CAMOUFLAGE_GENERATOR,
  146. ITEMID_HIGH_QUALITY_COOLER,
  147. ITEMID_SPECIAL_COOLER,
  148. ITEMID_SCARLET_PTS = 6360,
  149. ITEMID_INDIGO_PTS,
  150. ITEMID_YELLOW_WISH_PTS,
  151. ITEMID_LIME_GREEN_PTS,
  152. ITEMID_REPAIR_A = 12392,
  153. ITEMID_REPAIR_B,
  154. ITEMID_REPAIR_C,
  155. };
  156. ///Genetic
  157. enum genetic_item_list : t_itemid
  158. {
  159. ITEMID_SEED_OF_HORNY_PLANT = 6210,
  160. ITEMID_BLOODSUCK_PLANT_SEED,
  161. ITEMID_BOMB_MUSHROOM_SPORE,
  162. ITEMID_HP_INCREASE_POTION_SMALL = 12422,
  163. ITEMID_HP_INCREASE_POTION_MEDIUM,
  164. ITEMID_HP_INCREASE_POTION_LARGE,
  165. ITEMID_SP_INCREASE_POTION_SMALL,
  166. ITEMID_SP_INCREASE_POTION_MEDIUM,
  167. ITEMID_SP_INCREASE_POTION_LARGE,
  168. ITEMID_CONCENTRATED_WHITE_POTION_Z,
  169. ITEMID_SAVAGE_FULL_ROAST,
  170. ITEMID_COCKTAIL_WARG_BLOOD,
  171. ITEMID_MINOR_STEW,
  172. ITEMID_SIROMA_ICED_TEA,
  173. ITEMID_DROSERA_HERB_SALAD,
  174. ITEMID_PETITE_TAIL_NOODLES,
  175. ITEMID_BLACK_MASS,
  176. ITEMID_VITATA500,
  177. ITEMID_CONCENTRATED_CEROMAIN_SOUP,
  178. ITEMID_CURE_FREE = 12475,
  179. ITEMID_APPLE_BOMB = 13260,
  180. ITEMID_COCONUT_BOMB,
  181. ITEMID_MELON_BOMB,
  182. ITEMID_PINEAPPLE_BOMB,
  183. ITEMID_BANANA_BOMB,
  184. ITEMID_BLACK_LUMP,
  185. ITEMID_BLACK_HARD_LUMP,
  186. ITEMID_VERY_HARD_LUMP,
  187. ITEMID_MYSTERIOUS_POWDER,
  188. ITEMID_HP_INC_POTS_TO_THROW = 13275,
  189. ITEMID_HP_INC_POTM_TO_THROW,
  190. ITEMID_HP_INC_POTL_TO_THROW,
  191. ITEMID_SP_INC_POTS_TO_THROW,
  192. ITEMID_SP_INC_POTM_TO_THROW,
  193. ITEMID_SP_INC_POTL_TO_THROW,
  194. };
  195. ///Guillotine Cross
  196. enum poison_item_list : t_itemid
  197. {
  198. ITEMID_PARALYSE = 12717,
  199. ITEMID_LEECHESEND,
  200. ITEMID_OBLIVIONCURSE,
  201. ITEMID_DEATHHURT,
  202. ITEMID_TOXIN,
  203. ITEMID_PYREXIA,
  204. ITEMID_MAGICMUSHROOM,
  205. ITEMID_VENOMBLEED,
  206. };
  207. ///Item job
  208. enum e_item_job : uint16
  209. {
  210. ITEMJ_NONE = 0x00,
  211. ITEMJ_NORMAL = 0x01,
  212. ITEMJ_UPPER = 0x02,
  213. ITEMJ_BABY = 0x04,
  214. ITEMJ_THIRD = 0x08,
  215. ITEMJ_THIRD_UPPER = 0x10,
  216. ITEMJ_THIRD_BABY = 0x20,
  217. ITEMJ_FOURTH = 0x40,
  218. ITEMJ_MAX = 0xFF,
  219. ITEMJ_ALL_UPPER = ITEMJ_UPPER | ITEMJ_THIRD_UPPER | ITEMJ_FOURTH,
  220. ITEMJ_ALL_BABY = ITEMJ_BABY | ITEMJ_THIRD_BABY,
  221. ITEMJ_ALL_THIRD = ITEMJ_THIRD | ITEMJ_THIRD_UPPER | ITEMJ_THIRD_BABY,
  222. #ifdef RENEWAL
  223. ITEMJ_ALL = ITEMJ_NORMAL | ITEMJ_UPPER | ITEMJ_BABY | ITEMJ_THIRD | ITEMJ_THIRD_UPPER | ITEMJ_THIRD_BABY | ITEMJ_FOURTH,
  224. #else
  225. ITEMJ_ALL = ITEMJ_NORMAL | ITEMJ_UPPER | ITEMJ_BABY,
  226. #endif
  227. };
  228. #define AMMO_TYPE_ALL ((1<<MAX_AMMO_TYPE)-1)
  229. enum e_random_item_group {
  230. IG_BLUEBOX = 1,
  231. IG_VIOLETBOX,
  232. IG_CARDALBUM,
  233. IG_GIFTBOX,
  234. IG_SCROLLBOX,
  235. IG_FINDINGORE,
  236. IG_COOKIEBAG,
  237. IG_FIRSTAID,
  238. IG_HERB,
  239. IG_FRUIT,
  240. IG_MEAT,
  241. IG_CANDY,
  242. IG_JUICE,
  243. IG_FISH,
  244. IG_BOX,
  245. IG_GEMSTONE,
  246. IG_RESIST,
  247. IG_ORE,
  248. IG_FOOD,
  249. IG_RECOVERY,
  250. IG_MINERAL,
  251. IG_TAMING,
  252. IG_SCROLL,
  253. IG_QUIVER,
  254. IG_MASK,
  255. IG_ACCESORY,
  256. IG_JEWEL,
  257. IG_GIFTBOX_1,
  258. IG_GIFTBOX_2,
  259. IG_GIFTBOX_3,
  260. IG_GIFTBOX_4,
  261. IG_EGGBOY,
  262. IG_EGGGIRL,
  263. IG_GIFTBOXCHINA,
  264. IG_LOTTOBOX,
  265. IG_FOODBAG,
  266. IG_POTION,
  267. IG_REDBOX_2,
  268. IG_BLEUBOX,
  269. IG_REDBOX,
  270. IG_GREENBOX,
  271. IG_YELLOWBOX,
  272. IG_OLDGIFTBOX,
  273. IG_MAGICCARDALBUM,
  274. IG_HOMETOWNGIFT,
  275. IG_MASQUERADE,
  276. IG_TRESURE_BOX_WOE,
  277. IG_MASQUERADE_2,
  278. IG_EASTER_SCROLL,
  279. IG_PIERRE_TREASUREBOX,
  280. IG_CHERISH_BOX,
  281. IG_CHERISH_BOX_ORI,
  282. IG_LOUISE_COSTUME_BOX,
  283. IG_XMAS_GIFT,
  284. IG_FRUIT_BASKET,
  285. IG_IMPROVED_COIN_BAG,
  286. IG_INTERMEDIATE_COIN_BAG,
  287. IG_MINOR_COIN_BAG,
  288. IG_S_GRADE_COIN_BAG,
  289. IG_A_GRADE_COIN_BAG,
  290. IG_ADVANCED_WEAPONS_BOX,
  291. IG_SPLENDID_BOX,
  292. IG_SPLENDID_BOX2,
  293. IG_CARDALBUM_ARMOR,
  294. IG_CARDALBUM_HELM,
  295. IG_CARDALBUM_ACC,
  296. IG_CARDALBUM_SHOES,
  297. IG_CARDALBUM_SHIELD,
  298. IG_CARDALBUM_WEAPON,
  299. IG_CARDALBUM_GARMENT,
  300. IG_FLAMEL_CARD,
  301. IG_SPECIAL_BOX,
  302. IG_TRESURE_BOX_WOE_,
  303. IG_RWC_PARTI_BOX,
  304. IG_RWC_FINAL_COMP_BOX,
  305. IG_GIFT_BUNDLE,
  306. IG_CARACAS_RING_BOX,
  307. IG_CRUMPLED_PAPER,
  308. IG_SOLO_GIFT_BASKET,
  309. IG_COUPLE_EVENT_BASKET,
  310. IG_GM_WARP_BOX,
  311. IG_FORTUNE_COOKIE1,
  312. IG_FORTUNE_COOKIE2,
  313. IG_FORTUNE_COOKIE3,
  314. IG_NEW_GIFT_ENVELOPE,
  315. IG_PASSION_FB_HAT_BOX,
  316. IG_COOL_FB_HAT_BOX,
  317. IG_VICTORY_FB_HAT_BOX,
  318. IG_GLORY_FB_HAT_BOX,
  319. IG_PASSION_HAT_BOX2,
  320. IG_COOL_HAT_BOX2,
  321. IG_VICTORY_HAT_BOX2,
  322. IG_ASPERSIO_5_SCROLL_BOX,
  323. IG_PET_EGG_SCROLL_BOX1,
  324. IG_PET_EGG_SCROLL_BOX2,
  325. IG_PET_EGG_SCROLL1,
  326. IG_PET_EGG_SCROLL2,
  327. IG_PET_EGG_SCROLL_BOX3,
  328. IG_PET_EGG_SCROLL_BOX4,
  329. IG_PET_EGG_SCROLL_BOX5,
  330. IG_PET_EGG_SCROLL3,
  331. IG_PET_EGG_SCROLL4,
  332. IG_PET_EGG_SCROLL5,
  333. IG_INFILTRATOR_BOX,
  334. IG_MURAMASA_BOX,
  335. IG_EXCALIBUR_BOX,
  336. IG_COMBAT_KNIFE_BOX,
  337. IG_COUNTER_DAGGER_BOX,
  338. IG_KAISER_KNUCKLE_BOX,
  339. IG_POLE_AXE_BOX,
  340. IG_MIGHTY_STAFF_BOX,
  341. IG_RIGHT_EPSILON_BOX,
  342. IG_BALISTAR_BOX,
  343. IG_DIARY_OF_GREAT_SAGE_BOX,
  344. IG_ASURA_BOX,
  345. IG_APPLE_OF_ARCHER_BOX,
  346. IG_BUNNY_BAND_BOX,
  347. IG_SAHKKAT_BOX,
  348. IG_LORD_CIRCLET_BOX,
  349. IG_ELVEN_EARS_BOX,
  350. IG_STEEL_FLOWER_BOX,
  351. IG_CRITICAL_RING_BOX,
  352. IG_EARRING_BOX,
  353. IG_RING_BOX,
  354. IG_NECKLACE_BOX,
  355. IG_GLOVE_BOX,
  356. IG_BROOCH_BOX,
  357. IG_ROSARY_BOX,
  358. IG_SAFETY_RING_BOX,
  359. IG_VESPER_CORE01_BOX,
  360. IG_VESPER_CORE02_BOX,
  361. IG_VESPER_CORE03_BOX,
  362. IG_VESPER_CORE04_BOX,
  363. IG_PET_EGG_SCROLL_BOX6,
  364. IG_PET_EGG_SCROLL_BOX7,
  365. IG_PET_EGG_SCROLL_BOX8,
  366. IG_PET_EGG_SCROLL_BOX9,
  367. IG_PET_EGG_SCROLL_BOX10,
  368. IG_PET_EGG_SCROLL_BOX11,
  369. IG_PET_EGG_SCROLL6,
  370. IG_PET_EGG_SCROLL7,
  371. IG_PET_EGG_SCROLL8,
  372. IG_PET_EGG_SCROLL9,
  373. IG_PET_EGG_SCROLL10,
  374. IG_PET_EGG_SCROLL11,
  375. IG_CP_HELM_SCROLL_BOX,
  376. IG_CP_SHIELD_SCROLL_BOX,
  377. IG_CP_ARMOR_SCROLL_BOX,
  378. IG_CP_WEAPON_SCROLL_BOX,
  379. IG_REPAIR_SCROLL_BOX,
  380. IG_SUPER_PET_EGG1,
  381. IG_SUPER_PET_EGG2,
  382. IG_SUPER_PET_EGG3,
  383. IG_SUPER_PET_EGG4,
  384. IG_SUPER_CARD_PET_EGG1,
  385. IG_SUPER_CARD_PET_EGG2,
  386. IG_SUPER_CARD_PET_EGG3,
  387. IG_SUPER_CARD_PET_EGG4,
  388. IG_VIGORGRA_PACKAGE1,
  389. IG_VIGORGRA_PACKAGE2,
  390. IG_VIGORGRA_PACKAGE3,
  391. IG_VIGORGRA_PACKAGE4,
  392. IG_VIGORGRA_PACKAGE5,
  393. IG_VIGORGRA_PACKAGE6,
  394. IG_VIGORGRA_PACKAGE7,
  395. IG_VIGORGRA_PACKAGE8,
  396. IG_VIGORGRA_PACKAGE9,
  397. IG_VIGORGRA_PACKAGE10,
  398. IG_VIGORGRA_PACKAGE11,
  399. IG_VIGORGRA_PACKAGE12,
  400. IG_PET_EGG_SCROLL12,
  401. IG_PET_EGG_SCROLL13,
  402. IG_PET_EGG_SCROLL14,
  403. IG_SUPER_PET_EGG5,
  404. IG_SUPER_PET_EGG6,
  405. IG_SUPER_PET_EGG7,
  406. IG_SUPER_PET_EGG8,
  407. IG_PET_EGG_SCROLL_E,
  408. IG_RAMEN_HAT_BOX,
  409. IG_MYSTERIOUS_TRAVEL_SACK1,
  410. IG_MYSTERIOUS_TRAVEL_SACK2,
  411. IG_MYSTERIOUS_TRAVEL_SACK3,
  412. IG_MYSTERIOUS_TRAVEL_SACK4,
  413. IG_MAGICIAN_CARD_BOX,
  414. IG_ACOLYTE_CARD_BOX,
  415. IG_ARCHER_CARD_BOX,
  416. IG_SWORDMAN_CARD_BOX,
  417. IG_THIEF_CARD_BOX,
  418. IG_MERCHANT_CARD_BOX,
  419. IG_HARD_CORE_SET_BOX,
  420. IG_KITTY_SET_BOX,
  421. IG_SOFT_CORE_SET_BOX,
  422. IG_DEVIRUCHI_SET_BOX,
  423. IG_MVP_HUNT_BOX,
  424. IG_BREWING_BOX,
  425. IG_XMAS_PET_SCROLL,
  426. IG_LUCKY_SCROLL08,
  427. IG_BR_SWORDPACKAGE,
  428. IG_BR_MAGEPACKAGE,
  429. IG_BR_ACOLPACKAGE,
  430. IG_BR_ARCHERPACKAGE,
  431. IG_BR_MERPACKAGE,
  432. IG_BR_THIEFPACKAGE,
  433. IG_ACIDBOMB_10_BOX,
  434. IG_BASIC_SIEGE_SUPPLY_BOX,
  435. IG_ADV_SIEGE_SUPPLY_BOX,
  436. IG_ELITE_SIEGE_SUPPLY_BOX,
  437. IG_SAKURA_SCROLL,
  438. IG_BEHOLDER_RING_BOX,
  439. IG_HALLOW_RING_BOX,
  440. IG_CLAMOROUS_RING_BOX,
  441. IG_CHEMICAL_RING_BOX,
  442. IG_INSECTICIDE_RING_BOX,
  443. IG_FISHER_RING_BOX,
  444. IG_DECUSSATE_RING_BOX,
  445. IG_BLOODY_RING_BOX,
  446. IG_SATANIC_RING_BOX,
  447. IG_DRAGOON_RING_BOX,
  448. IG_ANGEL_SCROLL,
  449. IG_DEVIL_SCROLL,
  450. IG_SURPRISE_SCROLL,
  451. IG_JULY7_SCROLL,
  452. IG_BACSOJIN_SCROLL,
  453. IG_ANIMAL_SCROLL,
  454. IG_HEART_SCROLL,
  455. IG_NEW_YEAR_SCROLL,
  456. IG_VALENTINE_PLEDGE_BOX,
  457. IG_OX_TAIL_SCROLL,
  458. IG_BUDDAH_SCROLL,
  459. IG_EVIL_INCARNATION,
  460. IG_F_CLOVER_BOX_MOUTH,
  461. IG_MOUTH_BUBBLE_GUM_BOX,
  462. IG_F_CLOVER_BOX_MOUTH2,
  463. IG_F_CLOVER_BOX_MOUTH4,
  464. IG_BGUM_BOX_IN_MOUTH2,
  465. IG_BGUM_BOX_IN_MOUTH4,
  466. IG_TW_OCTOBER_SCROLL,
  467. IG_MY_SCROLL1,
  468. IG_TW_NOV_SCROLL,
  469. IG_MY_SCROLL2,
  470. IG_PR_RESET_STONE_BOX,
  471. IG_FPR_RESET_STONE_BOX,
  472. IG_MAJESTIC_DEVIL_SCROLL,
  473. IG_LIFE_RIBBON_BOX,
  474. IG_LIFE_RIBBON_BOX2,
  475. IG_LIFE_RIBBON_BOX3,
  476. IG_MAGIC_CANDY_BOX10,
  477. IG_RWC2010_SUITCASEA,
  478. IG_RWC2010_SUITCASEB,
  479. IG_SAGITTARIUS_SCROLL,
  480. IG_SAGITTARIUS_SCR_BOX,
  481. IG_SAGITTAR_DIADEM_SCROLL,
  482. IG_SAGITTAR_DI_SCROLL_BOX,
  483. IG_CAPRI_CROWN_SCROLL,
  484. IG_CAPRI_CROWN_SCROLL_BOX,
  485. IG_CAPRICON_DI_SCROLL,
  486. IG_CAPRICON_DI_SCROLL_BOX,
  487. IG_AQUARIUS_DIADEM_SCROLL,
  488. IG_AQUARIUS_DI_SCROLL_BOX,
  489. IG_LOVELY_AQUARIUS_SCROLL,
  490. IG_LOVELY_AQUARIUS_BOX,
  491. IG_PISCES_DIADEM_SCROLL,
  492. IG_PISCES_DIADEM_BOX,
  493. IG_ENERGETIC_PISCES_SCROLL,
  494. IG_ENERGETIC_PISCES_BOX,
  495. IG_ARIES_SCROLL,
  496. IG_ARIES_SCROLL_BOX,
  497. IG_BOARDING_HALTER_BOX,
  498. IG_TAURUS_DIADEM_SCROLL,
  499. IG_TAURUS_DI_SCROLL_BOX,
  500. IG_UMBALA_SPIRIT_BOX2,
  501. IG_F_UMBALA_SPIRIT_BOX2,
  502. IG_TAURUS_CROWN_SCROLL,
  503. IG_TAURUS_CROWN_SCROLL_BOX,
  504. IG_GEMI_DIADEM_SCROLL,
  505. IG_GEMI_DIADEM_SCROLL_BOX,
  506. IG_SUPER_PET_EGG1_2,
  507. IG_SUPER_PET_EGG4_2,
  508. IG_FIRE_BRAND_BOX,
  509. IG_BR_INDEPENDENCE_SCROLL,
  510. IG_ALL_IN_ONE_RING_BOX,
  511. IG_GEMI_CROWN_SCROLL,
  512. IG_GEMI_CROWN_SCROLL_BOX,
  513. IG_RWC_SPECIAL_SCROLL,
  514. IG_RWC_LIMITED_SCROLL,
  515. IG_ASGARD_SCROLL,
  516. IG_MS_CANCER_SCROLL,
  517. IG_RWC_SUPER_SCROLL,
  518. IG_LEO_SCROLL,
  519. IG_MS_VIRGO_SCROLL,
  520. IG_LUCKY_EGG_C6,
  521. IG_LIBRA_SCROLL,
  522. IG_HALLO_SCROLL,
  523. IG_MS_SCORPIO_SCROLL,
  524. IG_TCG_CARD_SCROLL,
  525. IG_BOITATA_SCROLL,
  526. IG_LUCKY_EGG_C2,
  527. IG_LUCKY_EGG_C6_,
  528. IG_LUCKY_EGG_C9,
  529. IG_LUCKY_EGG_C7,
  530. IG_LUCKY_EGG_C8,
  531. IG_LUCKY_EGG_C10,
  532. IG_WIND_TYPE_SCROLL,
  533. IG_LUCKY_EGG_C3,
  534. IG_LUCKY_EGG_C4,
  535. IG_LUCKY_EGG_C5,
  536. IG_WEATHER_REPORT_BOX,
  537. IG_COMIN_ACTOR_BOX,
  538. IG_HEN_SET_BOX,
  539. IG_LUCKY_EGG_C,
  540. IG_WATER_TYPE_SCROLL,
  541. IG_EARTH_TYPE_SCROLL,
  542. IG_EARTH_TYPE_SCROLL_,
  543. IG_SPLASH_SCROLL,
  544. IG_VOCATION_SCROLL,
  545. IG_WISDOM_SCROLL,
  546. IG_PATRON_SCROLL,
  547. IG_HEAVEN_SCROLL,
  548. IG_TW_AUG_SCROLL,
  549. IG_TW_NOV_SCROLL2,
  550. IG_ILLUSION_NOTHING,
  551. IG_TW_SEP_SCROLL,
  552. IG_FLAME_LIGHT,
  553. IG_TW_RAINBOW_SCROLL,
  554. IG_TW_RED_SCROLL,
  555. IG_TW_ORANGE_SCROLL,
  556. IG_TW_YELLOW_SCROLL,
  557. IG_SCROLL_OF_DEATH,
  558. IG_SCROLL_OF_LIFE,
  559. IG_SCROLL_OF_MAGIC,
  560. IG_SCROLL_OF_THEWS,
  561. IG_SCROLL_OF_DARKNESS,
  562. IG_SCROLL_OF_HOLINESS,
  563. IG_HORNED_SCROLL,
  564. IG_MERCURY_SCROLL,
  565. IG_CHALLENGE_KIT,
  566. IG_TW_APRIL_SCROLL,
  567. IG_TW_OCTOBER_SCROLL_,
  568. IG_SUMMER_SCROLL3,
  569. IG_C_WING_OF_FLY_3DAY_BOX,
  570. IG_RWC_2012_SET_BOX,
  571. IG_EX_DEF_POTION_BOX,
  572. IG_RWC_SCROLL_2012,
  573. IG_OLD_COIN_POCKET,
  574. IG_HIGH_COIN_POCKET,
  575. IG_MID_COIN_POCKET,
  576. IG_LOW_COIN_POCKET,
  577. IG_SGRADE_POCKET,
  578. IG_AGRADE_POCKET,
  579. IG_BGRADE_POCKET,
  580. IG_CGRADE_POCKET,
  581. IG_DGRADE_POCKET,
  582. IG_EGRADE_POCKET,
  583. IG_PTOTECTION_SEAGOD_BOX,
  584. IG_HAIRTAIL_BOX1,
  585. IG_HAIRTAIL_BOX2,
  586. IG_SPEARFISH_BOX1,
  587. IG_SPEARFISH_BOX2,
  588. IG_SAUREL_BOX1,
  589. IG_SAUREL_BOX2,
  590. IG_TUNA_BOX1,
  591. IG_TUNA_BOX2,
  592. IG_MALANG_CRAB_BOX1,
  593. IG_MALANG_CRAB_BOX2,
  594. IG_BRINDLE_EEL_BOX1,
  595. IG_BRINDLE_EEL_BOX2,
  596. IG_PTOTECTION_SEAGOD_BOX2,
  597. IG_PTOTECTION_SEAGOD_BOX3,
  598. IG_OCTO_HSTICK_BOX,
  599. IG_OCTO_HSTICK_BOX2,
  600. IG_OCTO_HSTICK_BOX3,
  601. IG_SILVERVINE_FRUIT_BOX10,
  602. IG_SILVERVINE_FRUIT_BOX40,
  603. IG_SILVERVINE_FRUIT_BOX4,
  604. IG_MALANG_WOE_ENCARD_BOX,
  605. IG_XMAS_BLESS,
  606. IG_FIRE_TYPE_SCROLL,
  607. IG_BLUE_SCROLL,
  608. IG_GOOD_STUDENT_GIFT_BOX,
  609. IG_BAD_STUDENT_GIFT_BOX,
  610. IG_INDIGO_SCROLL,
  611. IG_VIOLET_SCROLL,
  612. IG_BI_HWANG_SCROLL,
  613. IG_JUNG_BI_SCROLL,
  614. IG_JE_UN_SCROLL,
  615. IG_YONG_KWANG_SCROLL,
  616. IG_HALLOWEEN_G_BOX,
  617. IG_SOLO_CHRISTMAS_GIFT,
  618. IG_SG_WEAPON_SUPPLY_BOX,
  619. IG_CANDY_HOLDER,
  620. IG_LUCKY_BAG,
  621. IG_HOLY_EGG_2,
  622. IG_ADVENTURER_RETURNS_SUPPORT_BOX,
  623. IG_SUPPORT_PACKAGE,
  624. IG_SUPPORT_PACKAGE_10,
  625. IG_EVENT_ALMIGHTY_BOX,
  626. IG_EVENT_ALMIGHTY_BOX_100,
  627. IG_LOTTOBOX1,
  628. IG_LOTTOBOX2,
  629. IG_LOTTOBOX3,
  630. IG_LOTTOBOX4,
  631. IG_LOTTOBOX5,
  632. IG_SUPPORT_PACKAGE_III,
  633. IG_SUPPORT_PACKAGE_III_10,
  634. IG_UNLIMITED_BOX,
  635. IG_UNLIMITED_BOX_10,
  636. IG_UNLIMITED_BOX_II,
  637. IG_UNLIMITED_BOX_II_10,
  638. IG_THREE_MASTER_PACKAGE_III,
  639. IG_THREE_MASTER_PACKAGE_III_10,
  640. IG_2013_RWC_SCROLL,
  641. IG_SUPPORT_PACKAGE_II,
  642. IG_SUPPORT_PACKAGE_II_10,
  643. IG_LEVEL_UP_BOX100,
  644. IG_LEVEL_UP_BOX120,
  645. IG_LEVEL_UP_BOX130,
  646. IG_LEVEL_UP_BOX140,
  647. IG_LEVEL_UP_BOX150,
  648. IG_LEVEL_UP_BOX160,
  649. IG_GIFT_BUFF_SET,
  650. IG_LUCKY_SILVERVINE_FRUIT_BOX_III10,
  651. IG_LUCKY_SILVERVINE_FRUIT_BOX_III110,
  652. IG_OLD_ORE_BOX,
  653. IG_BLESSING_LUCKY_SCROLL,
  654. IG_SOGRAT_LUCKY_SCROLL,
  655. IG_GARNET_LUCKY_SCROLL,
  656. IG_AMORA_LUCKY_SCROLL,
  657. IG_VENUS_LUCKY_SCROLL,
  658. IG_ERZULIE_LUCKY_SCROLL,
  659. IG_MAJESTIC_LUCKY_SCROLL,
  660. IG_EPIC_HEROES_LUCKY_EGG,
  661. IG_HERO_MIDGARD_EGG,
  662. IG_IMORTAL_MIDGARD_SCROLL,
  663. IG_TW_13Y_LUCKY_EGG_06,
  664. IG_HAPPY_TIME_SCROLL,
  665. IG_TIME_TRAVEL_SCROLL,
  666. IG_SOLARIS_FESTIVAL_SCROLL,
  667. IG_MIDGARD_FES_SCROLL,
  668. IG_MIDGARD_SCROLL,
  669. IG_SWEET_MIDGARD_SCROLL,
  670. IG_WINTER_MIDGARD_SCROLL,
  671. IG_SPRING_FESTIVAL_SCROLL,
  672. IG_IDRO10TH_SCROLL,
  673. IG_REQUIEM_SCROLL,
  674. IG_HOLY_SPIRIT_SCROLL,
  675. IG_GARUDA_SCROLL,
  676. IG_THANKS_GIVING_SCROLL,
  677. IG_IDN_LEGEND_HERO_SCROLL,
  678. IG_BLESSING_MIDGARD_SCROLL,
  679. IG_CHRONOSIAN_LUCKY_SCROLL,
  680. IG_SANCTUARY_LUCKY_SCROLL,
  681. IG_CYBORG_LUCKY_SCROLL,
  682. IG_UNDINE_LUCKY_SCROLL,
  683. IG_GOD_MATERIAL_BOX,
  684. IG_SEALED_MIND_BOX,
  685. IG_COSTAMA_EGG18,
  686. IG_COSTAMA_EGG19,
  687. IG_FLOWER_BLOSSOM_SCROLL,
  688. IG_COSTAMA_EGG24,
  689. IG_SMITHY_LUCKY_SCROLL,
  690. IG_GANYMEDE_LUCKY_SCROLL,
  691. IG_LASTANGEL_LUCKYSCROLL,
  692. IG_VALKYRIE_LUCKY_SCROLL,
  693. IG_SPLASH_RAINBOW_LUCKY_SCROLL,
  694. IG_SHAPESHIFTER_COSTUME,
  695. IG_JULY_LUCKY_SCROLL,
  696. IG_COSTAMA_EGG23,
  697. IG_COSTAMA_EGG28,
  698. IG_MIDGARD_LUCKY_SCROLL,
  699. IG_BLESSING_SCARLET_SCROLL,
  700. IG_COSTAMA_EGG29,
  701. IG_INK_BALL,
  702. IG_SOMETHING_CANDY_HOLDER,
  703. IG_SHINING_EGG,
  704. IG_AGUST_LUCKY_SCROLL,
  705. IG_ELEMENT,
  706. IG_POISON,
  707. IG_CASH_FOOD,
  708. IG_BOMB,
  709. IG_THROWABLE,
  710. IG_MERCENARY,
  711. IG_NOIVE_BOX,
  712. IG_VALERIAN_SCROLL,
  713. IG_IMMORTAL_EGG,
  714. IG_SAPPHIRE_EGG,
  715. IG_IDN_HEART_SCROLL,
  716. IG_IDN_WISDOM_EGG,
  717. IG_CHRISTMAS_BOX,
  718. IG_SPECIAL_CHRISTMAS_BOX,
  719. IG_SANTA_GIFT,
  720. IG_PRIZEOFHERO,
  721. IG_PRIVATE_AIRSHIP,
  722. IG_TOKEN_OF_SIEGFRIED,
  723. IG_ENCHANT_STONE_BOX,
  724. IG_ENCHANT_STONE_BOX2,
  725. IG_ENCHANT_STONE_BOX3,
  726. IG_ENCHANT_STONE_BOX4,
  727. IG_ENCHANT_STONE_BOX5,
  728. IG_ENCHANT_STONE_BOX6,
  729. IG_ENCHANT_STONE_BOX7,
  730. IG_ENCHANT_STONE_BOX8,
  731. IG_ENCHANT_STONE_BOX9,
  732. IG_ENCHANT_STONE_BOX10,
  733. IG_ENCHANT_STONE_BOX11,
  734. IG_ENCHANT_STONE_BOX12,
  735. IG_ENCHANT_STONE_BOX13,
  736. IG_ENCHANT_STONE_BOX14,
  737. IG_ENCHANT_STONE_BOX15,
  738. IG_ENCHANT_STONE_BOX16,
  739. IG_ENCHANT_STONE_BOX17,
  740. IG_ENCHANT_STONE_BOX18,
  741. IG_ENCHANT_STONE_BOX19,
  742. IG_ENCHANT_STONE_BOX20,
  743. IG_ENCHANT_STONE_BOX21,
  744. IG_XMAS_PACKAGE_14,
  745. IG_EASTER_EGG,
  746. IG_PITAPAT_BOX,
  747. IG_HAPPY_BOX_J,
  748. IG_CLASS_SHADOW_CUBE,
  749. IG_SEALED_SCROLL,
  750. IG_SQUAD_PRIZE1,
  751. IG_SQUAD_PRIZE2,
  752. IG_LI_NYANGVINE_BOX1_26,
  753. IG_LI_NYANGVINE_BOX2_26,
  754. IG_LI_NYANGVINE_BOX3_26,
  755. IG_ENCHANT_STONE_BOX26,
  756. IG_THIRD_JOB_STONE_GARMENT_BOX,
  757. IG_THIRD_JOB_STONE_GARMENT_BOX2,
  758. IG_THIRD_JOB_STONE_TOP_BOX,
  759. IG_THIRD_JOB_STONE_TOP_BOX2,
  760. IG_THIRD_JOB_STONE_MIDDLE_BOX,
  761. IG_THIRD_JOB_STONE_MIDDLE_BOX2,
  762. IG_THIRD_JOB_STONE_BOTTOM_BOX,
  763. IG_THIRD_JOB_STONE_BOTTOM_BOX2,
  764. IG_SHADOW_EXCHANGE_BOX,
  765. IG_GUNSLINGER_ENCHANT,
  766. IG_ENCHANTSTONE_RECIPE,
  767. IG_PET_EGG_BOX,
  768. IG_COSTUME_EXCHANGE_BOX,
  769. IG_FAN_UPGRADE_KIT,
  770. IG_SUIT_UPGRADE_KIT,
  771. IG_SCROLL_OF_FALLEN_ANGEL_WINGS,
  772. IG_CLASS_SHADOW_BOX_WEAPON,
  773. IG_CLASS_SHADOW_BOX_ARMOR,
  774. IG_CLASS_SHADOW_BOX_SHOES,
  775. IG_CLASS_SHADOW_BOX_SHIELD,
  776. IG_CLASS_SHADOW_BOX_PENDANT,
  777. IG_CLASS_SHADOW_BOX_EARRING,
  778. IG_STATUSSHADOW_MIX,
  779. IG_GEMSTONESHADOW_MIX,
  780. IG_BEARERSSHADOW_MIX,
  781. IG_COMPOSESHADOW_MIX,
  782. IG_RACESHADOW_MIX,
  783. IG_CANDY_BAG_SCROLL_MELEE,
  784. IG_CANDY_BAG_SCROLL_RANGE,
  785. IG_CANDY_BAG_SCROLL_MAGIC,
  786. IG_BOOSTER_AMPLIFIER,
  787. IG_MAGICAL_CAT_HAND,
  788. IG_INFINITYSHADOW_MIX,
  789. IG_SILVER_STATUE,
  790. IG_PHYSICALMAGICAL_MIX,
  791. IG_IMMUNEDATHENA_MIX,
  792. IG_HARDCHAMPTION_MIX,
  793. IG_KINGBIRDANCIENT_MIX,
  794. IG_CRITICALHIT_MIX,
  795. IG_BS_ITEM_M_S_2,
  796. IG_BS_ITEM_M_S_8,
  797. IG_BS_ITEM_M_S_10,
  798. IG_BS_ITEM_M_S_11,
  799. IG_BS_ITEM_M_S_34,
  800. IG_BS_ITEM_M_S_41,
  801. IG_BS_ITEM_M_S_42,
  802. IG_BS_ITEM_M_S_43,
  803. IG_BS_ITEM_M_S_44,
  804. IG_BS_SHA_M_S_1,
  805. IG_BS_SHA_M_S_17,
  806. IG_BS_SHA_M_S_18,
  807. IG_BS_SHA_M_S_19,
  808. IG_BS_SHA_M_S_20,
  809. IG_BS_ITEM_M_S_4,
  810. IG_BS_ITEM_M_S_6,
  811. IG_BS_ITEM_M_S_7,
  812. IG_BS_ITEM_M_S_12,
  813. IG_BS_ITEM_M_S_13,
  814. IG_BS_ITEM_M_S_15,
  815. IG_BS_ITEM_M_S_28,
  816. IG_BS_ITEM_M_S_29,
  817. IG_BS_ITEM_M_S_31,
  818. IG_BS_ITEM_M_S_32,
  819. IG_BS_ITEM_M_S_33,
  820. IG_BS_ITEM_M_S_36,
  821. IG_BS_ITEM_M_S_37,
  822. IG_BS_ITEM_M_S_38,
  823. IG_BS_ITEM_M_S_39,
  824. IG_BS_ITEM_M_S_40,
  825. IG_BS_ITEM_M_S_45,
  826. IG_BS_ITEM_M_S_46,
  827. IG_BS_ITEM_M_S_47,
  828. IG_BS_ITEM_M_S_48,
  829. IG_BS_ITEM_M_S_49,
  830. IG_BS_ITEM_M_S_50,
  831. IG_BS_SHA_M_S_5,
  832. IG_BS_SHA_M_S_6,
  833. IG_BS_SHA_M_S_7,
  834. IG_BS_SHA_M_S_8,
  835. IG_BS_SHA_M_S_13,
  836. IG_BS_SHA_M_S_15,
  837. IG_BS_SHA_M_S_16,
  838. IG_BS_SHA_M_S_23,
  839. IG_BS_ITEM_M_S_5,
  840. IG_BS_ITEM_M_S_9,
  841. IG_BS_ITEM_M_S_14,
  842. IG_BS_ITEM_M_S_16,
  843. IG_BS_ITEM_M_S_17,
  844. IG_BS_ITEM_M_S_19,
  845. IG_BS_ITEM_M_S_27,
  846. IG_BS_ITEM_M_S_35,
  847. IG_BS_SHA_M_S_9,
  848. IG_BS_SHA_M_S_10,
  849. IG_BS_SHA_M_S_11,
  850. IG_BS_SHA_M_S_21,
  851. IG_BS_ITEM_M_S_1,
  852. IG_BS_ITEM_M_S_3,
  853. IG_BS_ITEM_M_S_18,
  854. IG_BS_ITEM_M_S_20,
  855. IG_BS_ITEM_M_S_21,
  856. IG_BS_ITEM_M_S_22,
  857. IG_BS_ITEM_M_S_23,
  858. IG_BS_ITEM_M_S_24,
  859. IG_BS_ITEM_M_S_25,
  860. IG_BS_ITEM_M_S_26,
  861. IG_BS_ITEM_M_S_30,
  862. IG_BS_SHA_M_S_3,
  863. IG_BS_SHA_M_S_4,
  864. IG_BS_SHA_M_S_12,
  865. IG_BS_SHA_M_S_14,
  866. IG_BS_SHA_M_S_24,
  867. IG_BS_SHA_M_S_25,
  868. IG_BS_ITEM_M_S_51,
  869. IG_ENCHANTSTONE_RECIPE_9M,
  870. IG_IDTEST_SPECIAL,
  871. IG_PERFECTSIZE_MIX,
  872. IG_MAGICPIERCING_MIX,
  873. IG_PIERCING_MIX,
  874. IG_HASTY_MIX,
  875. IG_ENCHANTSTONE_RECIPE_4M,
  876. IG_SHADOW_CUBE,
  877. IG_SHADOW_CUBE_PENDANT,
  878. IG_SHADOW_CUBE_EARING,
  879. IG_ANGELPORING_BOX,
  880. IG_HELM_OF_FAITH_BOX,
  881. IG_2022_LUNARNEWYEARS_BOX,
  882. IG_2020_REWARD_BOX,
  883. IG_COSTUME_MILE_PACK_26_1,
  884. IG_COSTUME_MILE_PACK_26_2,
  885. IG_COSTUME_MILE_PACK_26_3,
  886. IG_EP17_1_SPC01,
  887. IG_EP17_1_SPC02,
  888. IG_EP17_1_SPC03,
  889. IG_EP17_1_SPC04,
  890. IG_STABILITYSHADOW_MIX,
  891. IG_BS_SHA_M_S_2,
  892. IG_BS_SHA_M_S_22,
  893. IG_SLD_CARD_RECIPE,
  894. IG_R_BEARERSSHADOW_MIX,
  895. IG_M_BLITZSHADOW_MIX,
  896. IG_RELOADSHADOW_MIX,
  897. IG_SPELLCASTERSHADOW_MIX,
  898. IG_MAGICALSHADOW_MIX,
  899. IG_PHYSICALSHADOW_MIX,
  900. IG_MAJORAUTOSPELL_MIX,
  901. IG_ABSORBSHADOW_MIX,
  902. IG_TRUE_GEMSHADOW_MIX,
  903. IG_MAMMOTH_MIX,
  904. IG_FULLTEMPSHADOW_MIX,
  905. IG_FULLPENESHADOW_MIX,
  906. IG_REMODEL_HERO_BOOTS,
  907. IG_ORIENTAL_SWORD_CUBE,
  908. IG_DRAGONIC_SLAYER_CUBE,
  909. IG_SHIVER_KATAR_K_CUBE,
  910. IG_BLADE_KATAR_CUBE,
  911. IG_SWORD_OF_BLUEFIRE_CUBE,
  912. IG_SLATE_SWORD_CUBE,
  913. IG_NARCIS_BOW_CUBE,
  914. IG_TRUMPET_SHELL_K_CUBE,
  915. IG_BARB_WIRE_K_CUBE,
  916. IG_AVENGER_CUBE,
  917. IG_METEOR_STRIKER_CUBE,
  918. IG_MAGIC_SWORD_CUBE,
  919. IG_FATALIST_CUBE,
  920. IG_ROYAL_BOW_K_CUBE,
  921. IG_SCALET_DRAGON_L_CUBE,
  922. IG_SHADOW_STAFF_K_CUBE,
  923. IG_FREEZING_ROD_CUBE,
  924. IG_IRON_NAIL_K_CUBE,
  925. IG_RAY_KNUCKLE_CUBE,
  926. IG_UNDINE_SPEAR_K_CUBE,
  927. IG_LIGHT_BLADE_CUBE,
  928. IG_IRON_STAFF_CUBE,
  929. IG_BLUE_CRYSTAL_STAFF_CUBE,
  930. IG_DEMON_HUNT_BIBLE_CUBE,
  931. IG_SAINT_HALL_CUBE,
  932. IG_MEAWFOXTAIL_CUBE,
  933. IG_FOG_DEW_SWORD_CUBE,
  934. IG_HUMMA_CLEAR_CUBE,
  935. IG_THOUSAND_SUN_CUBE,
  936. IG_SPIRIT_PENDULUM_CUBE,
  937. IG_CRIMSON_ROSE_CUBE,
  938. IG_MASTER_SOUL_RIFLE_CUBE,
  939. IG_GOLDEN_LORD_LAUNCHER_CUBE,
  940. IG_THE_BLACK_CUBE,
  941. IG_DEMON_SLAYER_SHOT_CUBE,
  942. IG_RUNE_CRAFT_MATERIALS,
  943. IG_ELEMENTAL_CONVERTER,
  944. IG_POISONS,
  945. IG_BLACKSMITH,
  946. IG_POTION_CRAFT_MATERIALS,
  947. IG_KUNAI_BOX,
  948. IG_BULLET_CASE,
  949. IG_SOUL_LINKER,
  950. IG_ELEMENTAL_STONES,
  951. IG_SHADOW_CUBE_ARMOR,
  952. IG_SHADOW_CUBE_SHIELD,
  953. IG_SHADOW_CUBE_SHOES,
  954. IG_SHADOW_CUBE_WEAPON,
  955. IG_AUTOMATIC_MODULE_MIX,
  956. IG_EPIC_MODULE_MIX,
  957. IG_AUTO_M_I_BOX_A,
  958. IG_AUTO_M_I_BOX_B,
  959. IG_ILLUSION_MODULE_MIX,
  960. IG_ENCHANT_STONE_BOX22,
  961. IG_ENCHANT_STONE_BOX23,
  962. IG_ENCHANT_STONE_BOX24,
  963. IG_ENCHANT_STONE_BOX25,
  964. IG_ENCHANT_STONE_BOX27,
  965. IG_ANCIENT_HERO_BOX_1,
  966. IG_MAX,
  967. };
  968. /// Enum for bound/sell restricted selling
  969. enum e_itemshop_restrictions {
  970. ISR_NONE = 0x0,
  971. ISR_BOUND = 0x1,
  972. ISR_SELLABLE = 0x2,
  973. ISR_BOUND_SELLABLE = 0x4,
  974. ISR_BOUND_GUILDLEADER_ONLY = 0x8,
  975. };
  976. /// Enum for item drop effects
  977. enum e_item_drop_effect : uint16 {
  978. DROPEFFECT_NONE = 0,
  979. DROPEFFECT_CLIENT,
  980. #if PACKETVER < 20200304
  981. DROPEFFECT_WHITE_PILLAR,
  982. #endif
  983. DROPEFFECT_BLUE_PILLAR,
  984. DROPEFFECT_YELLOW_PILLAR,
  985. DROPEFFECT_PURPLE_PILLAR,
  986. #if PACKETVER < 20200304
  987. DROPEFFECT_ORANGE_PILLAR,
  988. #else
  989. DROPEFFECT_GREEN_PILLAR,
  990. #endif
  991. #if PACKETVER >= 20200304
  992. DROPEFFECT_RED_PILLAR,
  993. #endif
  994. DROPEFFECT_MAX,
  995. #if PACKETVER >= 20200304
  996. // White was removed in 2020-03-04
  997. DROPEFFECT_WHITE_PILLAR,
  998. // Orange was replaced by green in 2020-03-04
  999. DROPEFFECT_ORANGE_PILLAR,
  1000. #else
  1001. // Not supported before 2020-03-04
  1002. DROPEFFECT_GREEN_PILLAR,
  1003. DROPEFFECT_RED_PILLAR,
  1004. #endif
  1005. };
  1006. /// Enum for items with delayed consumption
  1007. enum e_delay_consume : uint8 {
  1008. DELAYCONSUME_NONE = 0x0,
  1009. DELAYCONSUME_TEMP = 0x1, // Items that are not consumed immediately upon double-click
  1010. DELAYCONSUME_NOCONSUME = 0x2, // Items that are not removed upon double-click
  1011. };
  1012. /// Item combo struct
  1013. struct s_item_combo {
  1014. std::vector<t_itemid> nameid;
  1015. script_code *script;
  1016. uint16 id;
  1017. ~s_item_combo() {
  1018. if (this->script) {
  1019. script_free_code(this->script);
  1020. this->script = nullptr;
  1021. }
  1022. this->nameid.clear();
  1023. }
  1024. };
  1025. class ComboDatabase : public TypesafeYamlDatabase<uint16, s_item_combo> {
  1026. private:
  1027. uint16 combo_num;
  1028. uint16 find_combo_id( const std::vector<t_itemid>& items );
  1029. public:
  1030. ComboDatabase() : TypesafeYamlDatabase("COMBO_DB", 1) {
  1031. }
  1032. void clear() override{
  1033. TypesafeYamlDatabase::clear();
  1034. this->combo_num = 0;
  1035. }
  1036. const std::string getDefaultLocation() override;
  1037. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  1038. void loadingFinished() override;
  1039. };
  1040. extern ComboDatabase itemdb_combo;
  1041. // Struct for item random option [Secret]
  1042. struct s_random_opt_data
  1043. {
  1044. uint16 id;
  1045. std::string name;
  1046. script_code *script;
  1047. ~s_random_opt_data() {
  1048. if (script)
  1049. script_free_code(script);
  1050. }
  1051. };
  1052. /// Struct for random option group entry
  1053. struct s_random_opt_group_entry {
  1054. uint16 id;
  1055. int16 min_value, max_value;
  1056. int8 param;
  1057. uint16 chance;
  1058. };
  1059. /// Struct for Random Option Group
  1060. struct s_random_opt_group {
  1061. uint16 id;
  1062. std::string name;
  1063. std::map<uint16, std::vector<std::shared_ptr<s_random_opt_group_entry>>> slots;
  1064. uint16 max_random;
  1065. std::vector<std::shared_ptr<s_random_opt_group_entry>> random_options;
  1066. public:
  1067. void apply( struct item& item );
  1068. };
  1069. class RandomOptionDatabase : public TypesafeYamlDatabase<uint16, s_random_opt_data> {
  1070. public:
  1071. RandomOptionDatabase() : TypesafeYamlDatabase("RANDOM_OPTION_DB", 1) {
  1072. }
  1073. const std::string getDefaultLocation() override;
  1074. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  1075. void loadingFinished() override;
  1076. // Additional
  1077. bool option_exists(std::string name);
  1078. bool option_get_id(std::string name, uint16 &id);
  1079. };
  1080. extern RandomOptionDatabase random_option_db;
  1081. class RandomOptionGroupDatabase : public TypesafeYamlDatabase<uint16, s_random_opt_group> {
  1082. public:
  1083. RandomOptionGroupDatabase() : TypesafeYamlDatabase("RANDOM_OPTION_GROUP", 1) {
  1084. }
  1085. const std::string getDefaultLocation() override;
  1086. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  1087. // Additional
  1088. bool add_option(const ryml::NodeRef& node, std::shared_ptr<s_random_opt_group_entry> &entry);
  1089. bool option_exists(std::string name);
  1090. bool option_get_id(std::string name, uint16 &id);
  1091. };
  1092. extern RandomOptionGroupDatabase random_option_group;
  1093. /// Struct of item group entry
  1094. struct s_item_group_entry
  1095. {
  1096. t_itemid nameid; /// Item ID
  1097. uint16 rate;
  1098. uint16 duration, /// Duration if item as rental item (in minutes)
  1099. amount; /// Amount of item will be obtained
  1100. bool isAnnounced, /// Broadcast if player get this item
  1101. GUID, /// Gives Unique ID for items in each box opened
  1102. isStacked, /// Whether stackable items are given stacked
  1103. isNamed; /// Named the item (if possible)
  1104. uint8 bound; /// Makes the item as bound item (according to bound type)
  1105. std::shared_ptr<s_random_opt_group> randomOptionGroup;
  1106. uint16 refineMinimum;
  1107. uint16 refineMaximum;
  1108. };
  1109. /// Struct of random group
  1110. struct s_item_group_random
  1111. {
  1112. uint32 total_rate;
  1113. std::unordered_map<t_itemid, std::shared_ptr<s_item_group_entry>> data; /// item ID, s_item_group_entry
  1114. std::shared_ptr<s_item_group_entry> get_random_itemsubgroup();
  1115. };
  1116. /// Struct of item group that will be used for db
  1117. struct s_item_group_db
  1118. {
  1119. uint16 id; /// Item Group ID
  1120. std::unordered_map<uint16, std::shared_ptr<s_item_group_random>> random; /// group ID, s_item_group_random
  1121. };
  1122. /// Struct of Roulette db
  1123. struct s_roulette_db {
  1124. t_itemid *nameid[MAX_ROULETTE_LEVEL]; /// Item ID
  1125. unsigned short *qty[MAX_ROULETTE_LEVEL]; /// Amount of Item ID
  1126. int *flag[MAX_ROULETTE_LEVEL]; /// Whether the item is for loss or win
  1127. int items[MAX_ROULETTE_LEVEL]; /// Number of items in the list for each
  1128. };
  1129. extern struct s_roulette_db rd;
  1130. ///Main item data struct
  1131. struct item_data
  1132. {
  1133. t_itemid nameid;
  1134. std::string name, ename;
  1135. uint32 value_buy;
  1136. uint32 value_sell;
  1137. item_types type;
  1138. uint8 subtype;
  1139. 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]
  1140. uint8 sex;
  1141. uint32 equip;
  1142. uint32 weight;
  1143. uint32 atk;
  1144. uint32 def;
  1145. uint16 range;
  1146. uint16 slots;
  1147. uint32 look;
  1148. uint16 elv;
  1149. uint16 weapon_level;
  1150. uint16 armor_level;
  1151. t_itemid view_id;
  1152. uint16 elvmax; ///< Maximum level for this item
  1153. #ifdef RENEWAL
  1154. uint32 matk;
  1155. #endif
  1156. //Lupus: I rearranged order of these fields due to compatibility with ITEMINFO script command
  1157. // some script commands should be revised as well...
  1158. uint64 class_base[3]; //Specifies if the base can wear this item (split in 3 indexes per type: 1-1, 2-1, 2-2)
  1159. uint16 class_upper; //Specifies if the class-type can equip it (See e_item_job)
  1160. struct {
  1161. int chance;
  1162. int id;
  1163. } mob[MAX_SEARCH]; //Holds the mobs that have the highest drop rate for this item. [Skotlex]
  1164. struct script_code *script; //Default script for everything.
  1165. struct script_code *equip_script; //Script executed once when equipping.
  1166. struct script_code *unequip_script;//Script executed once when unequipping.
  1167. struct {
  1168. unsigned available : 1;
  1169. uint32 no_equip;
  1170. unsigned no_refine : 1; // [celest]
  1171. unsigned delay_consume; // [Skotlex]
  1172. struct {
  1173. bool drop, trade, trade_partner, sell, cart, storage, guild_storage, mail, auction;
  1174. } trade_restriction; //Item restrictions mask [Skotlex]
  1175. unsigned autoequip: 1;
  1176. bool buyingstore;
  1177. bool dead_branch; // As dead branch item. Logged at `branchlog` table and cannot be used at 'nobranch' mapflag [Cydh]
  1178. bool group; // As item group container [Cydh]
  1179. unsigned guid : 1; // This item always be attached with GUID and make it as bound item! [Cydh]
  1180. bool broadcast; ///< Will be broadcasted if someone obtain the item [Cydh]
  1181. bool bindOnEquip; ///< Set item as bound when equipped
  1182. e_item_drop_effect dropEffect; ///< Drop Effect Mode
  1183. } flag;
  1184. struct {// item stacking limitation
  1185. uint16 amount;
  1186. bool inventory, cart, storage, guild_storage;
  1187. } stack;
  1188. struct {
  1189. uint16 override;
  1190. bool sitting;
  1191. } item_usage;
  1192. short gm_lv_trade_override; //GM-level to override trade_restriction
  1193. std::vector<std::shared_ptr<s_item_combo>> combos;
  1194. struct {
  1195. uint32 duration;
  1196. sc_type sc; ///< Use delay group if any instead using player's item_delay data [Cydh]
  1197. } delay;
  1198. ~item_data() {
  1199. if (this->script){
  1200. script_free_code(this->script);
  1201. this->script = nullptr;
  1202. }
  1203. if (this->equip_script){
  1204. script_free_code(this->equip_script);
  1205. this->equip_script = nullptr;
  1206. }
  1207. if (this->unequip_script){
  1208. script_free_code(this->unequip_script);
  1209. this->unequip_script = nullptr;
  1210. }
  1211. this->combos.clear();
  1212. }
  1213. bool isStackable();
  1214. int inventorySlotNeeded(int quantity);
  1215. };
  1216. class ItemDatabase : public TypesafeCachedYamlDatabase<t_itemid, item_data> {
  1217. private:
  1218. std::unordered_map<std::string, std::shared_ptr<item_data>> nameToItemDataMap;
  1219. std::unordered_map<std::string, std::shared_ptr<item_data>> aegisNameToItemDataMap;
  1220. e_sex defaultGender( const ryml::NodeRef& node, std::shared_ptr<item_data> id );
  1221. public:
  1222. ItemDatabase() : TypesafeCachedYamlDatabase("ITEM_DB", 2, 1) {
  1223. }
  1224. const std::string getDefaultLocation() override;
  1225. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  1226. void loadingFinished() override;
  1227. void clear() override{
  1228. TypesafeCachedYamlDatabase::clear();
  1229. this->nameToItemDataMap.clear();
  1230. this->aegisNameToItemDataMap.clear();
  1231. }
  1232. // Additional
  1233. std::shared_ptr<item_data> searchname( const char* name );
  1234. std::shared_ptr<item_data> search_aegisname( const char *name );
  1235. };
  1236. extern ItemDatabase item_db;
  1237. class ItemGroupDatabase : public TypesafeCachedYamlDatabase<uint16, s_item_group_db> {
  1238. public:
  1239. ItemGroupDatabase() : TypesafeCachedYamlDatabase("ITEM_GROUP_DB", 2, 1) {
  1240. }
  1241. const std::string getDefaultLocation() override;
  1242. uint64 parseBodyNode(const ryml::NodeRef& node) override;
  1243. void loadingFinished() override;
  1244. // Additional
  1245. bool item_exists(uint16 group_id, t_itemid nameid);
  1246. int16 item_exists_pc(map_session_data *sd, uint16 group_id);
  1247. t_itemid get_random_item_id(uint16 group_id, uint8 sub_group);
  1248. std::shared_ptr<s_item_group_entry> get_random_entry(uint16 group_id, uint8 sub_group);
  1249. uint8 pc_get_itemgroup(uint16 group_id, bool identify, map_session_data *sd);
  1250. };
  1251. extern ItemGroupDatabase itemdb_group;
  1252. struct s_laphine_synthesis_requirement{
  1253. t_itemid item_id;
  1254. uint16 amount;
  1255. };
  1256. struct s_laphine_synthesis{
  1257. t_itemid item_id;
  1258. uint16 minimumRefine;
  1259. uint16 maximumRefine;
  1260. uint16 requiredRequirements;
  1261. std::unordered_map<t_itemid, std::shared_ptr<s_laphine_synthesis_requirement>> requirements;
  1262. uint16 rewardGroupId;
  1263. };
  1264. class LaphineSynthesisDatabase : public TypesafeYamlDatabase<t_itemid, s_laphine_synthesis>{
  1265. public:
  1266. LaphineSynthesisDatabase() : TypesafeYamlDatabase( "LAPHINE_SYNTHESIS_DB", 1 ){
  1267. }
  1268. const std::string getDefaultLocation();
  1269. uint64 parseBodyNode( const ryml::NodeRef& node );
  1270. };
  1271. extern LaphineSynthesisDatabase laphine_synthesis_db;
  1272. struct s_laphine_upgrade{
  1273. t_itemid item_id;
  1274. std::vector<t_itemid> target_item_ids;
  1275. uint16 minimumRefine;
  1276. uint16 maximumRefine;
  1277. uint16 requiredRandomOptions;
  1278. bool cardsAllowed;
  1279. std::shared_ptr<s_random_opt_group> randomOptionGroup;
  1280. uint16 resultRefine;
  1281. uint16 resultRefineMinimum;
  1282. uint16 resultRefineMaximum;
  1283. };
  1284. class LaphineUpgradeDatabase : public TypesafeYamlDatabase<t_itemid, s_laphine_upgrade>{
  1285. public:
  1286. LaphineUpgradeDatabase() : TypesafeYamlDatabase( "LAPHINE_UPGRADE_DB", 1 ){
  1287. }
  1288. const std::string getDefaultLocation();
  1289. uint64 parseBodyNode( const ryml::NodeRef& node );
  1290. };
  1291. extern LaphineUpgradeDatabase laphine_upgrade_db;
  1292. uint16 itemdb_searchname_array(struct item_data** data, uint16 size, const char *str);
  1293. struct item_data* itemdb_search(t_itemid nameid);
  1294. struct item_data* itemdb_exists(t_itemid nameid);
  1295. #define itemdb_name(n) itemdb_search(n)->name.c_str()
  1296. #define itemdb_ename(n) itemdb_search(n)->ename.c_str()
  1297. #define itemdb_type(n) itemdb_search(n)->type
  1298. #define itemdb_subtype(n) itemdb_search(n)->subtype
  1299. #define itemdb_atk(n) itemdb_search(n)->atk
  1300. #define itemdb_def(n) itemdb_search(n)->def
  1301. #define itemdb_look(n) itemdb_search(n)->look
  1302. #define itemdb_weight(n) itemdb_search(n)->weight
  1303. #define itemdb_equip(n) itemdb_search(n)->equip
  1304. #define itemdb_usescript(n) itemdb_search(n)->script
  1305. #define itemdb_equipscript(n) itemdb_search(n)->script
  1306. #define itemdb_wlv(n) itemdb_search(n)->weapon_level
  1307. #define itemdb_range(n) itemdb_search(n)->range
  1308. #define itemdb_slots(n) itemdb_search(n)->slots
  1309. #define itemdb_available(n) (itemdb_search(n)->flag.available)
  1310. #define itemdb_traderight(n) (itemdb_search(n)->flag.trade_restriction)
  1311. #define itemdb_viewid(n) (itemdb_search(n)->view_id)
  1312. #define itemdb_autoequip(n) (itemdb_search(n)->flag.autoequip)
  1313. #define itemdb_dropeffect(n) (itemdb_search(n)->flag.dropEffect)
  1314. const char* itemdb_typename(enum item_types type);
  1315. const char *itemdb_typename_ammo (e_ammo_type ammo);
  1316. #define itemdb_value_buy(n) itemdb_search(n)->value_buy
  1317. #define itemdb_value_sell(n) itemdb_search(n)->value_sell
  1318. #define itemdb_canrefine(n) (!itemdb_search(n)->flag.no_refine)
  1319. //Item trade restrictions [Skotlex]
  1320. bool itemdb_isdropable_sub(struct item_data *itd, int gmlv, int unused);
  1321. bool itemdb_cantrade_sub(struct item_data *itd, int gmlv, int gmlv2);
  1322. bool itemdb_canpartnertrade_sub(struct item_data *itd, int gmlv, int gmlv2);
  1323. bool itemdb_cansell_sub(struct item_data *itd, int gmlv, int unused);
  1324. bool itemdb_cancartstore_sub(struct item_data *itd, int gmlv, int unused);
  1325. bool itemdb_canstore_sub(struct item_data *itd, int gmlv, int unused);
  1326. bool itemdb_canguildstore_sub(struct item_data *itd, int gmlv, int unused);
  1327. bool itemdb_canmail_sub(struct item_data *itd, int gmlv, int unused);
  1328. bool itemdb_canauction_sub(struct item_data *itd, int gmlv, int unused);
  1329. bool itemdb_isrestricted(struct item* item, int gmlv, int gmlv2, bool (*func)(struct item_data*, int, int));
  1330. bool itemdb_ishatched_egg(struct item* item);
  1331. #define itemdb_isdropable(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_isdropable_sub)
  1332. #define itemdb_cantrade(item, gmlv, gmlv2) itemdb_isrestricted(item, gmlv, gmlv2, itemdb_cantrade_sub)
  1333. #define itemdb_canpartnertrade(item, gmlv, gmlv2) itemdb_isrestricted(item, gmlv, gmlv2, itemdb_canpartnertrade_sub)
  1334. #define itemdb_cansell(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_cansell_sub)
  1335. #define itemdb_cancartstore(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_cancartstore_sub)
  1336. #define itemdb_canstore(item, gmlv) itemdb_isrestricted(item, gmlv, 0, itemdb_canstore_sub)
  1337. #define itemdb_canguildstore(item, gmlv) itemdb_isrestricted(item , gmlv, 0, itemdb_canguildstore_sub)
  1338. #define itemdb_canmail(item, gmlv) itemdb_isrestricted(item , gmlv, 0, itemdb_canmail_sub)
  1339. #define itemdb_canauction(item, gmlv) itemdb_isrestricted(item , gmlv, 0, itemdb_canauction_sub)
  1340. bool itemdb_isequip2(struct item_data *id);
  1341. #define itemdb_isequip(nameid) itemdb_isequip2(itemdb_search(nameid))
  1342. char itemdb_isidentified(t_itemid nameid);
  1343. bool itemdb_isstackable2(struct item_data *id);
  1344. #define itemdb_isstackable(nameid) itemdb_isstackable2(itemdb_search(nameid))
  1345. bool itemdb_isNoEquip(struct item_data *id, uint16 m);
  1346. bool itemdb_parse_roulette_db(void);
  1347. void itemdb_reload(void);
  1348. void do_final_itemdb(void);
  1349. void do_init_itemdb(void);
  1350. #endif /* ITEMDB_HPP */