Cleaned up Item Groups

* Moved constants from const.txt to script_constants.h.
* Removes hard coded item groups into the IG_* database to easily be adjusted/created.
* Renamed IG_FingingOre -> IG_FindingOre.

Enabled commented Item Groups
* Follow up to 50d5c14.
* Retains consistency between constant and ID values.
* Renamed duplicate item groups to avoid compile errors.
This commit is contained in:
aleos89 2016-11-22 08:52:11 -05:00
parent c7a8909d42
commit 127c13bbdd
11 changed files with 1216 additions and 614 deletions

View File

@ -14,482 +14,6 @@
// in field Value. Depending on the implementation values assigned by scripts to parameters will affect
// runtime values, such as Zeny, as well (see pc_readparam/pc_setparam).
//Item Group ID
IG_BlueBox 1
IG_VioletBox 2
IG_CardAlbum 3
IG_GiftBox 4
IG_ScrollBox 5
IG_FingingOre 6
IG_CookieBag 7
IG_FirstAid 8
IG_Herb 9
IG_Fruit 10
IG_Meat 11
IG_Candy 12
IG_Juice 13
IG_Fish 14
IG_Box 15
IG_Gemstone 16
IG_Resist 17
IG_Ore 18
IG_Food 19
IG_Recovery 20
IG_Mineral 21
IG_Taming 22
IG_Scroll 23
IG_Quiver 24
IG_Mask 25
IG_Accesory 26
IG_Jewel 27
IG_GiftBox_1 28
IG_GiftBox_2 29
IG_GiftBox_3 30
IG_GiftBox_4 31
IG_EggBoy 32
IG_EggGirl 33
IG_GiftBoxChina 34
IG_LottoBox 35
IG_FoodBag 36
IG_Potion 37
IG_RedBox_2 38
IG_BleuBox 39
IG_RedBox 40
IG_GreenBox 41
IG_YellowBox 42
IG_OldGiftBox 43
IG_MagicCardAlbum 44
IG_HometownGift 45
IG_Masquerade 46
IG_Tresure_Box_WoE 47
IG_Masquerade_2 48
IG_Easter_Scroll 49
IG_Pierre_Treasurebox 50
IG_Cherish_Box 51
IG_Cherish_Box_Ori 52
IG_Louise_Costume_Box 53
IG_Xmas_Gift 54
IG_Fruit_Basket 55
IG_Improved_Coin_Bag 56
IG_Intermediate_Coin_Bag 57
IG_Minor_Coin_Bag 58
IG_S_Grade_Coin_Bag 59
IG_A_Grade_Coin_Bag 60
IG_Advanced_Weapons_Box 61
IG_Splendid_Box 62
IG_CardAlbum_Armor 63
IG_CardAlbum_Helm 64
IG_CardAlbum_Acc 65
IG_CardAlbum_Shoes 66
IG_CardAlbum_Shield 67
IG_CardAlbum_Weapon 68
IG_CardAlbum_Garment 69
IG_Flamel_Card 70
IG_Special_Box 71
IG_Tresure_Box_WoE_ 72
IG_RWC_Parti_Box 73
IG_RWC_Final_Comp_Box 74
IG_Gift_Bundle 75
IG_Caracas_Ring_Box 76
IG_Crumpled_Paper 77
IG_Solo_Gift_Basket 78
IG_Couple_Event_Basket 79
IG_GM_Warp_Box 80
IG_Fortune_Cookie1 81
IG_Fortune_Cookie2 82
IG_Fortune_Cookie3 83
IG_New_Gift_Envelope 84
IG_Passion_FB_Hat_Box 85
IG_Cool_FB_Hat_Box 86
IG_Victory_FB_Hat_Box 87
IG_Glory_FB_Hat_Box 88
IG_Passion_Hat_Box2 89
IG_Cool_Hat_Box2 90
IG_Victory_Hat_Box2 91
IG_Aspersio_5_Scroll_Box 92
IG_Pet_Egg_Scroll_Box1 93
IG_Pet_Egg_Scroll_Box2 94
IG_Pet_Egg_Scroll1 95
IG_Pet_Egg_Scroll2 96
IG_Pet_Egg_Scroll_Box3 97
IG_Pet_Egg_Scroll_Box4 98
IG_Pet_Egg_Scroll_Box5 99
IG_Pet_Egg_Scroll3 100
IG_Pet_Egg_Scroll4 101
IG_Pet_Egg_Scroll5 102
IG_Infiltrator_Box 103
IG_Muramasa_Box 104
IG_Excalibur_Box 105
IG_Combat_Knife_Box 106
IG_Counter_Dagger_Box 107
IG_Kaiser_Knuckle_Box 108
IG_Pole_Axe_Box 109
IG_Mighty_Staff_Box 110
IG_Right_Epsilon_Box 111
IG_Balistar_Box 112
IG_Diary_Of_Great_Sage_Box 113
IG_Asura_Box 114
IG_Apple_Of_Archer_Box 115
IG_Bunny_Band_Box 116
IG_Sahkkat_Box 117
IG_Lord_Circlet_Box 118
IG_Elven_Ears_Box 119
IG_Steel_Flower_Box 120
IG_Critical_Ring_Box 121
IG_Earring_Box 122
IG_Ring_Box 123
IG_Necklace_Box 124
IG_Glove_Box 125
IG_Brooch_Box 126
IG_Rosary_Box 127
IG_Safety_Ring_Box 128
IG_Vesper_Core01_Box 129
IG_Vesper_Core02_Box 130
IG_Vesper_Core03_Box 131
IG_Vesper_Core04_Box 132
IG_Pet_Egg_Scroll_Box6 133
IG_Pet_Egg_Scroll_Box7 134
IG_Pet_Egg_Scroll_Box8 135
IG_Pet_Egg_Scroll_Box9 136
IG_Pet_Egg_Scroll_Box10 137
IG_Pet_Egg_Scroll_Box11 138
IG_Pet_Egg_Scroll6 139
IG_Pet_Egg_Scroll7 140
IG_Pet_Egg_Scroll8 141
IG_Pet_Egg_Scroll9 142
IG_Pet_Egg_Scroll10 143
IG_Pet_Egg_Scroll11 144
IG_CP_Helm_Scroll_Box 145
IG_CP_Shield_Scroll_Box 146
IG_CP_Armor_Scroll_Box 147
IG_CP_Weapon_Scroll_Box 148
IG_Repair_Scroll_Box 149
IG_Super_Pet_Egg1 150
IG_Super_Pet_Egg2 151
IG_Super_Pet_Egg3 152
IG_Super_Pet_Egg4 153
IG_Super_Card_Pet_Egg1 154
IG_Super_Card_Pet_Egg2 155
IG_Super_Card_Pet_Egg3 156
IG_Super_Card_Pet_Egg4 157
IG_Vigorgra_Package1 158
IG_Vigorgra_Package2 159
IG_Vigorgra_Package3 160
IG_Vigorgra_Package4 161
IG_Vigorgra_Package5 162
IG_Vigorgra_Package6 163
IG_Vigorgra_Package7 164
IG_Vigorgra_Package8 165
IG_Vigorgra_Package9 166
IG_Vigorgra_Package10 167
IG_Vigorgra_Package11 168
IG_Vigorgra_Package12 169
IG_Pet_Egg_Scroll12 170
IG_Pet_Egg_Scroll13 171
IG_Pet_Egg_Scroll14 172
IG_Super_Pet_Egg5 173
IG_Super_Pet_Egg6 174
IG_Super_Pet_Egg7 175
IG_Super_Pet_Egg8 176
IG_Pet_Egg_Scroll_E 177
IG_Ramen_Hat_Box 178
IG_Mysterious_Travel_Sack1 179
IG_Mysterious_Travel_Sack2 180
IG_Mysterious_Travel_Sack3 181
IG_Mysterious_Travel_Sack4 182
IG_Magician_Card_Box 183
IG_Acolyte_Card_Box 184
IG_Archer_Card_Box 185
IG_Swordman_Card_Box 186
IG_Thief_Card_Box 187
IG_Merchant_Card_Box 188
IG_Hard_Core_Set_Box 189
IG_Kitty_Set_Box 190
IG_Soft_Core_Set_Box 191
IG_Deviruchi_Set_Box 192
IG_MVP_Hunt_Box 193
IG_Brewing_Box 194
IG_Xmas_Pet_Scroll 195
IG_Lucky_Scroll08 196
IG_Br_SwordPackage 197
IG_Br_MagePackage 198
IG_Br_AcolPackage 199
IG_Br_ArcherPackage 200
IG_Br_MerPackage 201
IG_Br_ThiefPackage 202
IG_Acidbomb_10_Box 203
IG_Basic_Siege_Supply_Box 204
IG_Adv_Siege_Supply_Box 205
IG_Elite_Siege_Supply_Box 206
IG_Sakura_Scroll 207
IG_Beholder_Ring_Box 208
IG_Hallow_Ring_Box 209
IG_Clamorous_Ring_Box 210
IG_Chemical_Ring_Box 211
IG_Insecticide_Ring_Box 212
IG_Fisher_Ring_Box 213
IG_Decussate_Ring_Box 214
IG_Bloody_Ring_Box 215
IG_Satanic_Ring_Box 216
IG_Dragoon_Ring_Box 217
IG_Angel_Scroll 218
IG_Devil_Scroll 219
IG_Surprise_Scroll 220
IG_July7_Scroll 221
IG_Bacsojin_Scroll 222
IG_Animal_Scroll 223
IG_Heart_Scroll 224
IG_New_Year_Scroll 225
IG_Valentine_Pledge_Box 226
IG_Ox_Tail_Scroll 227
IG_Buddah_Scroll 228
IG_Evil_Incarnation 229
IG_F_Clover_Box_Mouth 230
IG_Mouth_Bubble_Gum_Box 231
IG_F_Clover_Box_Mouth2 232
IG_F_Clover_Box_Mouth4 233
IG_BGum_Box_In_Mouth2 234
IG_BGum_Box_In_Mouth4 235
IG_Tw_October_Scroll 236
IG_My_Scroll1 237
IG_Tw_Nov_Scroll 238
IG_My_Scroll2 239
IG_Pr_Reset_Stone_Box 240
IG_FPr_Reset_Stone_Box 241
IG_Majestic_Devil_Scroll 242
IG_Life_Ribbon_Box 243
IG_Life_Ribbon_Box2 244
IG_Life_Ribbon_Box3 245
IG_Magic_Candy_Box10 246
IG_RWC2010_SuitcaseA 247
IG_RWC2010_SuitcaseB 248
IG_Sagittarius_Scroll 249
IG_Sagittarius_Scr_Box 250
IG_Sagittar_Diadem_Scroll 251
IG_Sagittar_Di_Scroll_Box 252
IG_Capri_Crown_Scroll 253
IG_Capri_Crown_Scroll_Box 254
IG_Capricon_Di_Scroll 255
IG_Capricon_Di_Scroll_Box 256
IG_Aquarius_Diadem_Scroll 257
IG_Aquarius_Di_Scroll_Box 258
IG_Lovely_Aquarius_Scroll 259
IG_Lovely_Aquarius_Box 260
IG_Pisces_Diadem_Scroll 261
IG_Pisces_Diadem_Box 262
IG_Energetic_Pisces_Scroll 263
IG_Energetic_Pisces_Box 264
IG_Aries_Scroll 265
IG_Aries_Scroll_Box 266
IG_Boarding_Halter_Box 267
IG_Taurus_Diadem_Scroll 268
IG_Taurus_Di_Scroll_Box 269
IG_Umbala_Spirit_Box2 270
IG_F_Umbala_Spirit_Box2 271
IG_Taurus_Crown_Scroll 272
IG_Taurus_Crown_Scroll_Box 273
IG_Gemi_Diadem_Scroll 274
IG_Gemi_Diadem_Scroll_Box 275
IG_Super_Pet_Egg1_2 276
IG_Super_Pet_Egg4_2 277
IG_Fire_Brand_Box 278
IG_BR_Independence_Scroll 279
IG_All_In_One_Ring_Box 280
IG_Gemi_Crown_Scroll 281
IG_Gemi_Crown_Scroll_Box 282
IG_RWC_Special_Scroll 283
IG_RWC_Limited_Scroll 284
IG_Asgard_Scroll 285
IG_Ms_Cancer_Scroll 286
IG_RWC_Super_Scroll 287
IG_Leo_Scroll 288
IG_Ms_Virgo_Scroll 289
IG_Lucky_Egg_C6 290
IG_Libra_Scroll 291
IG_Hallo_Scroll 292
IG_Ms_Scorpio_Scroll 293
IG_TCG_Card_Scroll 294
IG_Boitata_Scroll 295
IG_Lucky_Egg_C2 296
//IG_Lucky_Egg_C6 297
IG_Lucky_Egg_C9 298
IG_Lucky_Egg_C7 299
IG_Lucky_Egg_C8 300
IG_Lucky_Egg_C10 301
IG_Wind_Type_Scroll 302
IG_Lucky_Egg_C3 303
IG_Lucky_Egg_C4 304
IG_Lucky_Egg_C5 305
IG_Weather_Report_Box 306
IG_Comin_Actor_Box 307
IG_Hen_Set_Box 308
IG_Lucky_Egg_C 309
IG_Water_Type_Scroll 310
IG_Earth_Type_Scroll 311
//IG_Earth_Type_Scroll 312
IG_Splash_Scroll 313
IG_Vocation_Scroll 314
IG_Wisdom_Scroll 315
IG_Patron_Scroll 316
IG_Heaven_Scroll 317
IG_Tw_Aug_Scroll 318
IG_Tw_Nov_Scroll2 319
IG_Illusion_Nothing 320
IG_Tw_Sep_Scroll 321
IG_Flame_Light 322
IG_Tw_Rainbow_Scroll 323
IG_Tw_Red_Scroll 324
IG_Tw_Orange_Scroll 325
IG_Tw_Yellow_Scroll 326
IG_Scroll_Of_Death 327
IG_Scroll_Of_Life 328
IG_Scroll_Of_Magic 329
IG_Scroll_Of_Thews 330
IG_Scroll_Of_Darkness 331
IG_Scroll_Of_Holiness 332
IG_Horned_Scroll 333
IG_Mercury_Scroll 334
IG_Challenge_Kit 335
IG_Tw_April_Scroll 336
//IG_Tw_October_Scroll 337
IG_Summer_Scroll3 338
IG_C_Wing_Of_Fly_3Day_Box 339
IG_RWC_2012_Set_Box 340
IG_Ex_Def_Potion_Box 341
IG_RWC_Scroll_2012 342
IG_Old_Coin_Pocket 343
IG_High_Coin_Pocket 344
IG_Mid_Coin_Pocket 345
IG_Low_Coin_Pocket 346
IG_Sgrade_Pocket 347
IG_Agrade_Pocket 348
IG_Bgrade_Pocket 349
IG_Cgrade_Pocket 350
IG_Dgrade_Pocket 351
IG_Egrade_Pocket 352
IG_Ptotection_Seagod_Box 353
IG_Hairtail_Box1 354
IG_Hairtail_Box2 355
IG_Spearfish_Box1 356
IG_Spearfish_Box2 357
IG_Saurel_Box1 358
IG_Saurel_Box2 359
IG_Tuna_Box1 360
IG_Tuna_Box2 361
IG_Malang_Crab_Box1 362
IG_Malang_Crab_Box2 363
IG_Brindle_Eel_Box1 364
IG_Brindle_Eel_Box2 365
IG_Ptotection_Seagod_Box2 366
IG_Ptotection_Seagod_Box3 367
IG_Octo_Hstick_Box 368
IG_Octo_Hstick_Box2 369
IG_Octo_Hstick_Box3 370
IG_Silvervine_Fruit_Box10 371
IG_Silvervine_Fruit_Box40 372
IG_Silvervine_Fruit_Box4 373
IG_Malang_Woe_Encard_Box 374
IG_Xmas_Bless 375
IG_Fire_Type_Scroll 376
IG_Blue_Scroll 377
IG_Good_Student_Gift_Box 378
IG_Bad_Student_Gift_Box 379
IG_Indigo_Scroll 380
IG_Violet_Scroll 381
IG_Bi_Hwang_Scroll 382
IG_Jung_Bi_Scroll 383
IG_Je_Un_Scroll 384
IG_Yong_Kwang_Scroll 385
IG_HALLOWEEN_G_BOX 386
IG_Solo_Christmas_Gift 387
IG_Sg_Weapon_Supply_Box 388
IG_Candy_Holder 389
IG_Lucky_Bag 390
IG_Holy_Egg_2 391
IG_Adventurer_Returns_Support_Box 392
IG_Support_Package 393
IG_Support_Package10 394
IG_Event_Almighty_Box 395
IG_Event_Almighty_Box10 396
IG_LottoBox1 397
IG_LottoBox2 398
IG_LottoBox3 399
IG_LottoBox4 400
IG_LottoBox5 401
IG_Support_Package_III 402
IG_Support_Package_III10 403
IG_Unlimited_Box 404
IG_Unlimited_Box10 405
IG_Unlimited_Box_II 406
IG_Unlimited_Box_II10 407
IG_Three_Master_Package_III 408
IG_Three_Master_Package_III10 409
IG_2013_RWC_Scroll 410
IG_Support_Package_II 411
IG_Support_Package_II10 412
IG_Level_Up_Box100 413
IG_Level_Up_Box120 414
IG_Level_Up_Box130 415
IG_Level_Up_Box140 416
IG_Level_Up_Box150 417
IG_Level_Up_Box160 418
IG_Gift_Buff_Set 419
IG_Lucky_Silvervine_Fruit_Box_III10 420
IG_Lucky_Silvervine_Fruit_Box_III110 421
IG_Old_Ore_Box 422
IG_Blessing_Lucky_Egg 423
IG_Sograt_Lucky_Egg 424
IG_Garnet_Lucky_Egg 425
IG_Amora_Lucky_Egg 426
IG_Venus_Lucky_Egg 427
IG_Erzulie_Lucky_Egg 428
IG_Majestic_Lucky_Egg 429
IG_Epic_Heroes_Lucky_Egg 430
IG_Hero_Midgard_Egg 431
IG_Midgard_Celebration_Lucky_Egg 432
IG_Rune_Midgard_Imortal_Lucky_Egg 433
IG_Rise_Midgard_Lucky_Egg 434
IG_Time_Travel_Lucky_Egg 435
IG_Solaris_Festival_Scroll 436
IG_Midgard_Festival_Egg 437
IG_Midgard_Egg 438
IG_Sweet_Midgard_Egg 439
IG_Winter_Midgard_Egg 440
IG_Spring_Festival_Lucky_Egg 441
IG_Birthday_IdRO10th_Scroll 442
IG_Requiem_Egg 443
IG_Holy_Spirit_Egg 444
IG_Memorial_Garuda_Lucky_Egg 445
IG_Miracle_Lucky_Egg 446
IG_Legend_Hero_Lucky_Egg 447
IG_Blessing_Midgard_Lucky_Egg 448
IG_Chronosian_Lucky_Egg 449
IG_Sanctuary_Lucky_Egg 450
IG_Cyborg_Lucky_Egg 451
IG_Undine_Lucky_Egg 452
IG_God_Material_Box 453
IG_Sealed_Mind_Box 454
IG_Frozen_Egg_Costume 455
IG_Headgear_Costume_Scroll 456
IG_Flower_Blossom_Scroll 457
IG_Seaside_Costume_Scroll 458
IG_Smithy_Lucky_Egg 459
IG_Ganymede_Lucky_Egg 460
IG_LastAngel_LuckyScroll 461
IG_Valkyrie_Lucky_Egg 462
IG_Splash_Rainbow_Lucky_Egg 463
IG_Shapeshifter_Costume 464
IG_Almighty_Lucky_Egg 465
IG_Burning_Feather_Costume_Scroll 466
IG_Animal_Costume_Scroll 467
IG_Midgard_Lucky_Scroll 468
IG_Blessing_Scarlet_Egg 469
IG_Mystical_Costume_Scroll 470
IG_Ink_Ball 471
IG_Something_Candy_Holder 472
IG_Shining_Egg 473
IG_Shining_Blue_Lucky_Egg 474
EF_NONE -1
EF_HIT1 0
EF_HIT2 1

View File

@ -3,23 +3,23 @@
// Structure of Database:
// GroupID,ItemID,Rate
IG_FingingOre,714,3 //Emperium
IG_FingingOre,756,20 //Rough Oridecon
IG_FingingOre,757,20 //Rough Elunium
IG_FingingOre,969,2 //Gold
IG_FingingOre,984,10 //Oridecon
IG_FingingOre,985,10 //Elunium
IG_FingingOre,990,30 //Red Blood
IG_FingingOre,991,30 //Crystal Blue
IG_FingingOre,992,30 //Wind of Verdure
IG_FingingOre,993,30 //Green Live
IG_FingingOre,994,15 //Flame Heart
IG_FingingOre,995,15 //Mystic Frozen
IG_FingingOre,996,15 //Rough Wind
IG_FingingOre,997,15 //Great Nature
IG_FingingOre,998,80 //Iron
IG_FingingOre,999,50 //Steel
IG_FingingOre,1002,100 //Iron Ore
IG_FingingOre,1003,60 //Coal
IG_FingingOre,1010,95 //Phracon
IG_FingingOre,1011,55 //Emveretarcon
IG_FindingOre,714,3 //Emperium
IG_FindingOre,756,20 //Rough Oridecon
IG_FindingOre,757,20 //Rough Elunium
IG_FindingOre,969,2 //Gold
IG_FindingOre,984,10 //Oridecon
IG_FindingOre,985,10 //Elunium
IG_FindingOre,990,30 //Red Blood
IG_FindingOre,991,30 //Crystal Blue
IG_FindingOre,992,30 //Wind of Verdure
IG_FindingOre,993,30 //Green Live
IG_FindingOre,994,15 //Flame Heart
IG_FindingOre,995,15 //Mystic Frozen
IG_FindingOre,996,15 //Rough Wind
IG_FindingOre,997,15 //Great Nature
IG_FindingOre,998,80 //Iron
IG_FindingOre,999,50 //Steel
IG_FindingOre,1002,100 //Iron Ore
IG_FindingOre,1003,60 //Coal
IG_FindingOre,1010,95 //Phracon
IG_FindingOre,1011,55 //Emveretarcon

View File

@ -559,3 +559,98 @@ IG_Xmas_Gift,12354,24 // Buche_De_Noel
IG_Xmas_Gift,12702,36 // Old_Bleu_Box
IG_Xmas_Gift,14546,6 // Fire_Cracker_Love
IG_Xmas_Gift,14550,6 // Fire_Cracker_Xmas
// Runes
IG_Rune,12725,1 // Runstone_Nosiege
IG_Rune,12726,1 // Runstone_Rhydo
IG_Rune,12727,1 // Runstone_Verkana
IG_Rune,12728,1 // Runstone_Isia
IG_Rune,12729,1 // Runstone_Asir
IG_Rune,12730,1 // Runstone_Urj
IG_Rune,12731,1 // Runstone_Turisus
IG_Rune,12732,1 // Runstone_Pertz
IG_Rune,12733,1 // Runstone_Hagalas
// Elemental Points
IG_Element,6360,1 // Scarlet_Pts
IG_Element,6361,1 // Indigo_Pts
IG_Element,6362,1 // Yellow_Wish_Pts
IG_Element,6363,1 // Lime_Green_Pts
// Poisons
IG_Poison,12717,1 // Poison_Paralysis
IG_Poison,12718,1 // Poison_Leech
IG_Poison,12719,1 // Poison_Oblivion
IG_Poison,12720,1 // Poison_Disheart
IG_Poison,12721,1 // Poison_Numb
IG_Poison,12722,1 // Poison_Fever
IG_Poison,12723,1 // Poison_Laughing
IG_Poison,12724,1 // Poison_Fatigue
// Cash Foods
IG_Cash_Food,12202,1 // Str_Dish10_
IG_Cash_Food,12203,1 // Agi_Dish10_
IG_Cash_Food,12204,1 // Int_Dish10_
IG_Cash_Food,12205,1 // Dex_Dish10_
IG_Cash_Food,12206,1 // Luk_Dish10_
IG_Cash_Food,12207,1 // Vit_Dish10_
// Bombs
IG_Bomb,13260,1 // Apple_Bomb
IG_Bomb,13261,1 // Coconut_Bomb
IG_Bomb,13262,1 // Melon_Bomb
IG_Bomb,13263,1 // Pineapple_Bomb
IG_Bomb,13264,1 // Banana_Bomb
IG_Bomb,13265,1 // Black_Lump
IG_Bomb,13266,1 // Black_Hard_Lump
IG_Bomb,13267,1 // Very_Hard_Lump
// Throwable Items
IG_Throwable,13268,1 // Mysterious_Powder
IG_Throwable,13269,1 // Boost500_To_Throw
IG_Throwable,13270,1 // Full_SwingK_To_Throw
IG_Throwable,13271,1 // Mana_Plus_To_Throw
IG_Throwable,13272,1 // Cure_Free_To_Throw
IG_Throwable,13273,1 // Stamina_Up_M_To_Throw
IG_Throwable,13274,1 // Digestive_F_To_Throw
IG_Throwable,13275,1 // HP_Inc_PotS_To_Throw
IG_Throwable,13276,1 // HP_Inc_PotM_To_Throw
IG_Throwable,13277,1 // HP_Inc_PotL_To_Throw
IG_Throwable,13278,1 // SP_Inc_PotS_To_Throw
IG_Throwable,13279,1 // SP_Inc_PotM_To_Throw
IG_Throwable,13280,1 // SP_Inc_PotL_To_Throw
IG_Throwable,13281,1 // En_White_PotZ_To_Throw
IG_Throwable,13282,1 // Vitata500_To_Throw
IG_Throwable,13283,1 // En_Cel_Juice_To_Throw
IG_Throwable,13284,1 // Savage_BBQ_To_Throw
IG_Throwable,13285,1 // Wug_Cocktail_To_Throw
IG_Throwable,13286,1 // M_Brisket_To_Throw
IG_Throwable,13287,1 // Siroma_Icetea_To_Throw
IG_Throwable,13288,1 // Drocera_Stew_To_Throw
IG_Throwable,13289,1 // Petti_Noodle_To_Throw
IG_Throwable,13290,1 // Black_Thing_To_Throw
// Mercenary Scrolls
IG_Mercenary,12153,1 // Bow_Mercenary_Scroll1
IG_Mercenary,12154,1 // Bow_Mercenary_Scroll2
IG_Mercenary,12155,1 // Bow_Mercenary_Scroll3
IG_Mercenary,12156,1 // Bow_Mercenary_Scroll4
IG_Mercenary,12157,1 // Bow_Mercenary_Scroll5
IG_Mercenary,12158,1 // Bow_Mercenary_Scroll6
IG_Mercenary,12159,1 // Bow_Mercenary_Scroll7
IG_Mercenary,12160,1 // Bow_Mercenary_Scroll8
IG_Mercenary,12161,1 // Bow_Mercenary_Scroll9
IG_Mercenary,12162,1 // Bow_Mercenary_Scroll10
IG_Mercenary,12163,1 // SwordMercenary_Scroll1
IG_Mercenary,12164,1 // SwordMercenary_Scroll2
IG_Mercenary,12165,1 // SwordMercenary_Scroll3
IG_Mercenary,12166,1 // SwordMercenary_Scroll4
IG_Mercenary,12167,1 // SwordMercenary_Scroll5
IG_Mercenary,12168,1 // SwordMercenary_Scroll6
IG_Mercenary,12169,1 // SwordMercenary_Scroll7
IG_Mercenary,12170,1 // SwordMercenary_Scroll8
IG_Mercenary,12171,1 // SwordMercenary_Scroll9
IG_Mercenary,12172,1 // SwordMercenary_Scroll10
IG_Mercenary,12173,1 // SpearMercenary_Scroll1
IG_Mercenary,12174,1 // SpearMercenary_Scroll2
IG_Mercenary,12175,1 // SpearMercenary_Scroll3
IG_Mercenary,12176,1 // SpearMercenary_Scroll4
IG_Mercenary,12177,1 // SpearMercenary_Scroll5
IG_Mercenary,12178,1 // SpearMercenary_Scroll6
IG_Mercenary,12179,1 // SpearMercenary_Scroll7
IG_Mercenary,12180,1 // SpearMercenary_Scroll8
IG_Mercenary,12181,1 // SpearMercenary_Scroll9
IG_Mercenary,12182,1 // SpearMercenary_Scroll10

View File

@ -1285,3 +1285,99 @@ IG_God_Material_Box,7089,5 //Indication_Of_Tempest
IG_God_Material_Box,7090,5 //Slilince_Wave
IG_God_Material_Box,7091,5 //Rough_Billows
IG_God_Material_Box,7092,5 //Air_Stream
// Runes
IG_Rune,12725,1 // Runstone_Nosiege
IG_Rune,12726,1 // Runstone_Rhydo
IG_Rune,12727,1 // Runstone_Verkana
IG_Rune,12728,1 // Runstone_Isia
IG_Rune,12729,1 // Runstone_Asir
IG_Rune,12730,1 // Runstone_Urj
IG_Rune,12731,1 // Runstone_Turisus
IG_Rune,12732,1 // Runstone_Pertz
IG_Rune,12733,1 // Runstone_Hagalas
IG_Rune,22540,1 // Runstone_Luxanima
// Elemental Points
IG_Element,6360,1 // Scarlet_Pts
IG_Element,6361,1 // Indigo_Pts
IG_Element,6362,1 // Yellow_Wish_Pts
IG_Element,6363,1 // Lime_Green_Pts
// Poisons
IG_Poison,12717,1 // Poison_Paralysis
IG_Poison,12718,1 // Poison_Leech
IG_Poison,12719,1 // Poison_Oblivion
IG_Poison,12720,1 // Poison_Disheart
IG_Poison,12721,1 // Poison_Numb
IG_Poison,12722,1 // Poison_Fever
IG_Poison,12723,1 // Poison_Laughing
IG_Poison,12724,1 // Poison_Fatigue
// Cash Foods
IG_Cash_Food,12202,1 // Str_Dish10_
IG_Cash_Food,12203,1 // Agi_Dish10_
IG_Cash_Food,12204,1 // Int_Dish10_
IG_Cash_Food,12205,1 // Dex_Dish10_
IG_Cash_Food,12206,1 // Luk_Dish10_
IG_Cash_Food,12207,1 // Vit_Dish10_
// Bombs
IG_Bomb,13260,1 // Apple_Bomb
IG_Bomb,13261,1 // Coconut_Bomb
IG_Bomb,13262,1 // Melon_Bomb
IG_Bomb,13263,1 // Pineapple_Bomb
IG_Bomb,13264,1 // Banana_Bomb
IG_Bomb,13265,1 // Black_Lump
IG_Bomb,13266,1 // Black_Hard_Lump
IG_Bomb,13267,1 // Very_Hard_Lump
// Throwable Items
IG_Throwable,13268,1 // Mysterious_Powder
IG_Throwable,13269,1 // Boost500_To_Throw
IG_Throwable,13270,1 // Full_SwingK_To_Throw
IG_Throwable,13271,1 // Mana_Plus_To_Throw
IG_Throwable,13272,1 // Cure_Free_To_Throw
IG_Throwable,13273,1 // Stamina_Up_M_To_Throw
IG_Throwable,13274,1 // Digestive_F_To_Throw
IG_Throwable,13275,1 // HP_Inc_PotS_To_Throw
IG_Throwable,13276,1 // HP_Inc_PotM_To_Throw
IG_Throwable,13277,1 // HP_Inc_PotL_To_Throw
IG_Throwable,13278,1 // SP_Inc_PotS_To_Throw
IG_Throwable,13279,1 // SP_Inc_PotM_To_Throw
IG_Throwable,13280,1 // SP_Inc_PotL_To_Throw
IG_Throwable,13281,1 // En_White_PotZ_To_Throw
IG_Throwable,13282,1 // Vitata500_To_Throw
IG_Throwable,13283,1 // En_Cel_Juice_To_Throw
IG_Throwable,13284,1 // Savage_BBQ_To_Throw
IG_Throwable,13285,1 // Wug_Cocktail_To_Throw
IG_Throwable,13286,1 // M_Brisket_To_Throw
IG_Throwable,13287,1 // Siroma_Icetea_To_Throw
IG_Throwable,13288,1 // Drocera_Stew_To_Throw
IG_Throwable,13289,1 // Petti_Noodle_To_Throw
IG_Throwable,13290,1 // Black_Thing_To_Throw
// Mercenary Scrolls
IG_Mercenary,12153,1 // Bow_Mercenary_Scroll1
IG_Mercenary,12154,1 // Bow_Mercenary_Scroll2
IG_Mercenary,12155,1 // Bow_Mercenary_Scroll3
IG_Mercenary,12156,1 // Bow_Mercenary_Scroll4
IG_Mercenary,12157,1 // Bow_Mercenary_Scroll5
IG_Mercenary,12158,1 // Bow_Mercenary_Scroll6
IG_Mercenary,12159,1 // Bow_Mercenary_Scroll7
IG_Mercenary,12160,1 // Bow_Mercenary_Scroll8
IG_Mercenary,12161,1 // Bow_Mercenary_Scroll9
IG_Mercenary,12162,1 // Bow_Mercenary_Scroll10
IG_Mercenary,12163,1 // SwordMercenary_Scroll1
IG_Mercenary,12164,1 // SwordMercenary_Scroll2
IG_Mercenary,12165,1 // SwordMercenary_Scroll3
IG_Mercenary,12166,1 // SwordMercenary_Scroll4
IG_Mercenary,12167,1 // SwordMercenary_Scroll5
IG_Mercenary,12168,1 // SwordMercenary_Scroll6
IG_Mercenary,12169,1 // SwordMercenary_Scroll7
IG_Mercenary,12170,1 // SwordMercenary_Scroll8
IG_Mercenary,12171,1 // SwordMercenary_Scroll9
IG_Mercenary,12172,1 // SwordMercenary_Scroll10
IG_Mercenary,12173,1 // SpearMercenary_Scroll1
IG_Mercenary,12174,1 // SpearMercenary_Scroll2
IG_Mercenary,12175,1 // SpearMercenary_Scroll3
IG_Mercenary,12176,1 // SpearMercenary_Scroll4
IG_Mercenary,12177,1 // SpearMercenary_Scroll5
IG_Mercenary,12178,1 // SpearMercenary_Scroll6
IG_Mercenary,12179,1 // SpearMercenary_Scroll7
IG_Mercenary,12180,1 // SpearMercenary_Scroll8
IG_Mercenary,12181,1 // SpearMercenary_Scroll9
IG_Mercenary,12182,1 // SpearMercenary_Scroll10

View File

@ -17302,7 +17302,7 @@ int clif_magicdecoy_list(struct map_session_data *sd, uint16 skill_lv, short x,
WFIFOW(fd,0) = 0x1ad; // This is the official packet. [pakpil]
for( i = 0, c = 0; i < MAX_INVENTORY; i ++ ) {
if( itemdb_is_element(sd->inventory.u.items_inventory[i].nameid) ) {
if( itemdb_group_item_exists(IG_ELEMENT, sd->inventory.u.items_inventory[i].nameid) ) {
WFIFOW(fd, c * 2 + 4) = sd->inventory.u.items_inventory[i].nameid;
c ++;
}
@ -17335,7 +17335,7 @@ int clif_poison_list(struct map_session_data *sd, uint16 skill_lv) {
WFIFOW(fd,0) = 0x1ad; // This is the official packet. [pakpil]
for( i = 0, c = 0; i < MAX_INVENTORY; i ++ ) {
if( itemdb_is_poison(sd->inventory.u.items_inventory[i].nameid) ) {
if( itemdb_group_item_exists(IG_POISON, sd->inventory.u.items_inventory[i].nameid) ) {
WFIFOW(fd, c * 2 + 4) = sd->inventory.u.items_inventory[i].nameid;
c ++;
}

View File

@ -39,6 +39,27 @@ struct s_item_group_db *itemdb_group_exists(unsigned short group_id) {
return (struct s_item_group_db *)uidb_get(itemdb_group, group_id);
}
/**
* Check if an item exists in a group
* @param nameid: Item to check for in group
* @return True if item is in group, else false
*/
bool itemdb_group_item_exists(unsigned short group_id, unsigned short nameid)
{
struct s_item_group_db *group = (struct s_item_group_db *)uidb_get(itemdb_group, group_id);
uint8 i, j;
if (!group)
return false;
for (i = 0; i < MAX_ITEMGROUP_RANDGROUP; i++) {
for (j = 0; j < group->random[i].data_qty; j++)
if (group->random[i].data[j].nameid == nameid)
return true;
}
return false;
}
/**
* Search for item name
* name = item alias, so we should find items aliases first. if not found then look for "jname" (full name)

View File

@ -19,10 +19,6 @@
///Maximum amount of items a combo may require
#define MAX_ITEMS_PER_COMBO 6
//The only item group required by the code to be known. See const.txt for the full list.
#define IG_FINDINGORE 6
#define IG_POTION 37
#define MAX_ITEMGROUP_RANDGROUP 4 ///Max group for random item (increase this when needed). TODO: Remove this limit and use dynamic size if needed
#define MAX_ROULETTE_LEVEL 7 /** client-defined value **/
@ -57,7 +53,6 @@ enum item_itemid
ITEMID_POISON_BOTTLE = 678,
ITEMID_EMPTY_BOTTLE = 713,
ITEMID_EMPERIUM = 714,
ITEMID_YELLOW_GEMSTONE = 715,
ITEMID_RED_GEMSTONE = 716,
ITEMID_BLUE_GEMSTONE = 717,
ITEMID_ORIDECON_STONE = 756,
@ -126,41 +121,6 @@ enum item_itemid
ITEMID_JOB_MANUAL50 = 14592,
};
///Mercenary Scrolls
enum mercenary_scroll_item_list
{
ITEMID_BOW_MERCENARY_SCROLL1 = 12153,
ITEMID_BOW_MERCENARY_SCROLL2,
ITEMID_BOW_MERCENARY_SCROLL3,
ITEMID_BOW_MERCENARY_SCROLL4,
ITEMID_BOW_MERCENARY_SCROLL5,
ITEMID_BOW_MERCENARY_SCROLL6,
ITEMID_BOW_MERCENARY_SCROLL7,
ITEMID_BOW_MERCENARY_SCROLL8,
ITEMID_BOW_MERCENARY_SCROLL9,
ITEMID_BOW_MERCENARY_SCROLL10,
ITEMID_SWORDMERCENARY_SCROLL1,
ITEMID_SWORDMERCENARY_SCROLL2,
ITEMID_SWORDMERCENARY_SCROLL3,
ITEMID_SWORDMERCENARY_SCROLL4,
ITEMID_SWORDMERCENARY_SCROLL5,
ITEMID_SWORDMERCENARY_SCROLL6,
ITEMID_SWORDMERCENARY_SCROLL7,
ITEMID_SWORDMERCENARY_SCROLL8,
ITEMID_SWORDMERCENARY_SCROLL9,
ITEMID_SWORDMERCENARY_SCROLL10,
ITEMID_SPEARMERCENARY_SCROLL1,
ITEMID_SPEARMERCENARY_SCROLL2,
ITEMID_SPEARMERCENARY_SCROLL3,
ITEMID_SPEARMERCENARY_SCROLL4,
ITEMID_SPEARMERCENARY_SCROLL5,
ITEMID_SPEARMERCENARY_SCROLL6,
ITEMID_SPEARMERCENARY_SCROLL7,
ITEMID_SPEARMERCENARY_SCROLL8,
ITEMID_SPEARMERCENARY_SCROLL9,
ITEMID_SPEARMERCENARY_SCROLL10,
};
///Rune Knight
enum rune_item_list
{
@ -231,28 +191,6 @@ enum genetic_item_list
ITEMID_BLACK_HARD_LUMP,
ITEMID_VERY_HARD_LUMP,
ITEMID_MYSTERIOUS_POWDER,
ITEMID_BOOST500_TO_THROW,
ITEMID_FULL_SWINGK_TO_THROW,
ITEMID_MANA_PLUS_TO_THROW,
ITEMID_CURE_FREE_TO_THROW,
ITEMID_STAMINA_UP_M_TO_THROW,
ITEMID_DIGESTIVE_F_TO_THROW,
ITEMID_HP_INC_POTS_TO_THROW,
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,
ITEMID_EN_WHITE_POTZ_TO_THROW,
ITEMID_VITATA500_TO_THROW,
ITEMID_EN_CEL_JUICE_TO_THROW,
ITEMID_SAVAGE_BBQ_TO_THROW,
ITEMID_WUG_COCKTAIL_TO_THROW,
ITEMID_M_BRISKET_TO_THROW,
ITEMID_SIROMA_ICETEA_TO_THROW,
ITEMID_DROCERA_STEW_TO_THROW,
ITEMID_PETTI_NOODLE_TO_THROW,
ITEMID_BLACK_THING_TO_THROW,
};
///Guillotine Cross
@ -268,39 +206,6 @@ enum poison_item_list
ITEMID_VENOMBLEED,
};
///Spell Books
enum spell_book_item_list
{
ITEMID_MAGIC_BOOK_FB = 6189,
ITEMID_MAGIC_BOOK_CB,
ITEMID_MAGIC_BOOK_LB,
ITEMID_MAGIC_BOOK_SG,
ITEMID_MAGIC_BOOK_LOV,
ITEMID_MAGIC_BOOK_MS,
ITEMID_MAGIC_BOOK_CM,
ITEMID_MAGIC_BOOK_TV,
ITEMID_MAGIC_BOOK_TS,
ITEMID_MAGIC_BOOK_JT,
ITEMID_MAGIC_BOOK_WB,
ITEMID_MAGIC_BOOK_HD,
ITEMID_MAGIC_BOOK_ES,
ITEMID_MAGIC_BOOK_ES_,
ITEMID_MAGIC_BOOK_CL,
ITEMID_MAGIC_BOOK_CR,
ITEMID_MAGIC_BOOK_DL,
};
///Cash Food
enum cash_food_item_list
{
ITEMID_STR_DISH10_ = 12202,
ITEMID_AGI_DISH10_,
ITEMID_INT_DISH10_,
ITEMID_DEX_DISH10_,
ITEMID_LUK_DISH10_,
ITEMID_VIT_DISH10_,
};
///Item No Use List
enum item_nouse_list
{
@ -335,6 +240,490 @@ enum e_item_ammo
#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_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_F_CLOVER_BOX_MOUTH,
IG_MOUTH_BUBBLE_GUM_BOX,
IG_F_CLOVER_BOX_MOUTH2,
IG_F_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_PACKAGE10,
IG_EVENT_ALMIGHTY_BOX,
IG_EVENT_ALMIGHTY_BOX10,
IG_LOTTOBOX1,
IG_LOTTOBOX2,
IG_LOTTOBOX3,
IG_LOTTOBOX4,
IG_LOTTOBOX5,
IG_SUPPORT_PACKAGE_III,
IG_SUPPORT_PACKAGE_III10,
IG_UNLIMITED_BOX,
IG_UNLIMITED_BOX10,
IG_UNLIMITED_BOX_II,
IG_UNLIMITED_BOX_II10,
IG_THREE_MASTER_PACKAGE_III,
IG_THREE_MASTER_PACKAGE_III10,
IG_2013_RWC_SCROLL,
IG_SUPPORT_PACKAGE_II,
IG_SUPPORT_PACKAGE_II10,
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_EGG,
IG_SOGRAT_LUCKY_EGG,
IG_GARNET_LUCKY_EGG,
IG_AMORA_LUCKY_EGG,
IG_VENUS_LUCKY_EGG,
IG_ERZULIE_LUCKY_EGG,
IG_MAJESTIC_LUCKY_EGG,
IG_EPIC_HEROES_LUCKY_EGG,
IG_HERO_MIDGARD_EGG,
IG_MIDGARD_CELEBRATION_LUCKY_EGG,
IG_RUNE_MIDGARD_IMORTAL_LUCKY_EGG,
IG_RISE_MIDGARD_LUCKY_EGG,
IG_TIME_TRAVEL_LUCKY_EGG,
IG_SOLARIS_FESTIVAL_SCROLL,
IG_MIDGARD_FESTIVAL_EGG,
IG_MIDGARD_EGG,
IG_SWEET_MIDGARD_EGG,
IG_WINTER_MIDGARD_EGG,
IG_SPRING_FESTIVAL_LUCKY_EGG,
IG_BIRTHDAY_IDRO10TH_SCROLL,
IG_REQUIEM_EGG,
IG_HOLY_SPIRIT_EGG,
IG_MEMORIAL_GARUDA_LUCKY_EGG,
IG_MIRACLE_LUCKY_EGG,
IG_LEGEND_HERO_LUCKY_EGG,
IG_BLESSING_MIDGARD_LUCKY_EGG,
IG_CHRONOSIAN_LUCKY_EGG,
IG_SANCTUARY_LUCKY_EGG,
IG_CYBORG_LUCKY_EGG,
IG_UNDINE_LUCKY_EGG,
IG_GOD_MATERIAL_BOX,
IG_SEALED_MIND_BOX,
IG_FROZEN_EGG_COSTUME,
IG_HEADGEAR_COSTUME_SCROLL,
IG_FLOWER_BLOSSOM_SCROLL,
IG_SEASIDE_COSTUME_SCROLL,
IG_SMITHY_LUCKY_EGG,
IG_GANYMEDE_LUCKY_EGG,
IG_LASTANGEL_LUCKYSCROLL,
IG_VALKYRIE_LUCKY_EGG,
IG_SPLASH_RAINBOW_LUCKY_EGG,
IG_SHAPESHIFTER_COSTUME,
IG_ALMIGHTY_LUCKY_EGG,
IG_BURNING_FEATHER_COSTUME_SCROLL,
IG_ANIMAL_COSTUME_SCROLL,
IG_MIDGARD_LUCKY_SCROLL,
IG_BLESSING_SCARLET_EGG,
IG_MYSTICAL_COSTUME_SCROLL,
IG_INK_BALL,
IG_SOMETHING_CANDY_HOLDER,
IG_SHINING_EGG,
IG_SHINING_BLUE_LUCKY_EGG,
IG_RUNE,
IG_ELEMENT,
IG_POISON,
IG_CASH_FOOD,
IG_BOMB,
IG_THROWABLE,
IG_MERCENARY,
};
///Item combo struct
struct item_combo
{
@ -481,14 +870,6 @@ struct item_data* itemdb_exists(unsigned short nameid);
#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_is_rune(n) ((n >= ITEMID_NAUTHIZ && n <= ITEMID_HAGALAZ) || n == ITEMID_LUX_ANIMA)
#define itemdb_is_element(n) (n >= ITEMID_SCARLET_PTS && n <= ITEMID_LIME_GREEN_PTS)
#define itemdb_is_spellbook(n) (n >= ITEMID_MAGIC_BOOK_FB && n <= ITEMID_MAGIC_BOOK_DL)
#define itemdb_is_poison(n) (n >= ITEMID_PARALYSE && n <= ITEMID_VENOMBLEED)
#define itemid_isgemstone(id) ( (id) >= ITEMID_YELLOW_GEMSTONE && (id) <= ITEMID_BLUE_GEMSTONE )
#define itemdb_iscashfood(id) ( (id) >= ITEMID_STR_DISH10_ && (id) <= ITEMID_VIT_DISH10_ )
#define itemdb_is_GNbomb(n) (n >= ITEMID_APPLE_BOMB && n <= ITEMID_VERY_HARD_LUMP)
#define itemdb_is_GNthrowable(n) (n >= ITEMID_MYSTERIOUS_POWDER && n <= ITEMID_BLACK_THING_TO_THROW)
const char* itemdb_typename(enum item_types type);
const char *itemdb_typename_ammo (enum e_item_ammo ammo);
bool itemdb_is_spellbook2(unsigned short nameid);
@ -530,6 +911,7 @@ bool itemdb_isNoEquip(struct item_data *id, uint16 m);
struct item_combo *itemdb_combo_exists(unsigned short combo_id);
struct s_item_group_db *itemdb_group_exists(unsigned short group_id);
bool itemdb_group_item_exists(unsigned short group_id, unsigned short nameid);
char itemdb_pc_get_itemgroup(uint16 group_id, struct map_session_data *sd);
uint16 itemdb_get_randgroupitem_count(uint16 group_id, uint8 sub_group, unsigned short nameid);

View File

@ -4728,7 +4728,7 @@ bool pc_isUseitem(struct map_session_data *sd,int n)
return false;
//Prevent mass item usage. [Skotlex]
if( DIFF_TICK(sd->canuseitem_tick,gettick()) > 0 ||
(itemdb_iscashfood(nameid) && DIFF_TICK(sd->canusecashfood_tick,gettick()) > 0)
(itemdb_group_item_exists(IG_CASH_FOOD, nameid) && DIFF_TICK(sd->canusecashfood_tick,gettick()) > 0)
)
return false;
@ -4812,18 +4812,18 @@ bool pc_isUseitem(struct map_session_data *sd,int n)
break;
}
if( nameid >= ITEMID_BOW_MERCENARY_SCROLL1 && nameid <= ITEMID_SPEARMERCENARY_SCROLL10 && sd->md != NULL )
if( itemdb_group_item_exists(IG_MERCENARY, nameid) && sd->md != NULL )
return false; // Mercenary Scrolls
/**
* Only Rune Knights may use runes
**/
if( itemdb_is_rune(nameid) && (sd->class_&MAPID_THIRDMASK) != MAPID_RUNE_KNIGHT )
if( itemdb_group_item_exists(IG_RUNE, nameid) && (sd->class_&MAPID_THIRDMASK) != MAPID_RUNE_KNIGHT )
return false;
/**
* Only GCross may use poisons
**/
else if( itemdb_is_poison(nameid) && (sd->class_&MAPID_THIRDMASK) != MAPID_GUILLOTINE_CROSS )
else if( itemdb_group_item_exists(IG_POISON, nameid) && (sd->class_&MAPID_THIRDMASK) != MAPID_GUILLOTINE_CROSS )
return false;
if( item->flag.group || item->type == IT_CASH) { //safe check type cash disappear when overweight [Napster]
@ -4982,7 +4982,7 @@ int pc_useitem(struct map_session_data *sd,int n)
//Update item use time.
sd->canuseitem_tick = tick + battle_config.item_use_interval;
if( itemdb_iscashfood(nameid) )
if( itemdb_group_item_exists(IG_CASH_FOOD, nameid) )
sd->canusecashfood_tick = tick + battle_config.cashfood_use_interval;
run_script(script,0,sd->bl.id,fake_nd->bl.id);

View File

@ -3181,6 +3181,489 @@
export_constant(STOR_MODE_GET);
export_constant(STOR_MODE_PUT);
/* item groups */
export_constant(IG_BLUEBOX);
export_constant(IG_VIOLETBOX);
export_constant(IG_CARDALBUM);
export_constant(IG_GIFTBOX);
export_constant(IG_SCROLLBOX);
export_constant(IG_FINDINGORE);
export_constant(IG_COOKIEBAG);
export_constant(IG_FIRSTAID);
export_constant(IG_HERB);
export_constant(IG_FRUIT);
export_constant(IG_MEAT);
export_constant(IG_CANDY);
export_constant(IG_JUICE);
export_constant(IG_FISH);
export_constant(IG_BOX);
export_constant(IG_GEMSTONE);
export_constant(IG_RESIST);
export_constant(IG_ORE);
export_constant(IG_FOOD);
export_constant(IG_RECOVERY);
export_constant(IG_MINERAL);
export_constant(IG_TAMING);
export_constant(IG_SCROLL);
export_constant(IG_QUIVER);
export_constant(IG_MASK);
export_constant(IG_ACCESORY);
export_constant(IG_JEWEL);
export_constant(IG_GIFTBOX_1);
export_constant(IG_GIFTBOX_2);
export_constant(IG_GIFTBOX_3);
export_constant(IG_GIFTBOX_4);
export_constant(IG_EGGBOY);
export_constant(IG_EGGGIRL);
export_constant(IG_GIFTBOXCHINA);
export_constant(IG_LOTTOBOX);
export_constant(IG_FOODBAG);
export_constant(IG_POTION);
export_constant(IG_REDBOX_2);
export_constant(IG_BLEUBOX);
export_constant(IG_REDBOX);
export_constant(IG_GREENBOX);
export_constant(IG_YELLOWBOX);
export_constant(IG_OLDGIFTBOX);
export_constant(IG_MAGICCARDALBUM);
export_constant(IG_HOMETOWNGIFT);
export_constant(IG_MASQUERADE);
export_constant(IG_TRESURE_BOX_WOE);
export_constant(IG_MASQUERADE_2);
export_constant(IG_EASTER_SCROLL);
export_constant(IG_PIERRE_TREASUREBOX);
export_constant(IG_CHERISH_BOX);
export_constant(IG_CHERISH_BOX_ORI);
export_constant(IG_LOUISE_COSTUME_BOX);
export_constant(IG_XMAS_GIFT);
export_constant(IG_FRUIT_BASKET);
export_constant(IG_IMPROVED_COIN_BAG);
export_constant(IG_INTERMEDIATE_COIN_BAG);
export_constant(IG_MINOR_COIN_BAG);
export_constant(IG_S_GRADE_COIN_BAG);
export_constant(IG_A_GRADE_COIN_BAG);
export_constant(IG_ADVANCED_WEAPONS_BOX);
export_constant(IG_SPLENDID_BOX);
export_constant(IG_CARDALBUM_ARMOR);
export_constant(IG_CARDALBUM_HELM);
export_constant(IG_CARDALBUM_ACC);
export_constant(IG_CARDALBUM_SHOES);
export_constant(IG_CARDALBUM_SHIELD);
export_constant(IG_CARDALBUM_WEAPON);
export_constant(IG_CARDALBUM_GARMENT);
export_constant(IG_FLAMEL_CARD);
export_constant(IG_SPECIAL_BOX);
export_constant(IG_TRESURE_BOX_WOE_);
export_constant(IG_RWC_PARTI_BOX);
export_constant(IG_RWC_FINAL_COMP_BOX);
export_constant(IG_GIFT_BUNDLE);
export_constant(IG_CARACAS_RING_BOX);
export_constant(IG_CRUMPLED_PAPER);
export_constant(IG_SOLO_GIFT_BASKET);
export_constant(IG_COUPLE_EVENT_BASKET);
export_constant(IG_GM_WARP_BOX);
export_constant(IG_FORTUNE_COOKIE1);
export_constant(IG_FORTUNE_COOKIE2);
export_constant(IG_FORTUNE_COOKIE3);
export_constant(IG_NEW_GIFT_ENVELOPE);
export_constant(IG_PASSION_FB_HAT_BOX);
export_constant(IG_COOL_FB_HAT_BOX);
export_constant(IG_VICTORY_FB_HAT_BOX);
export_constant(IG_GLORY_FB_HAT_BOX);
export_constant(IG_PASSION_HAT_BOX2);
export_constant(IG_COOL_HAT_BOX2);
export_constant(IG_VICTORY_HAT_BOX2);
export_constant(IG_ASPERSIO_5_SCROLL_BOX);
export_constant(IG_PET_EGG_SCROLL_BOX1);
export_constant(IG_PET_EGG_SCROLL_BOX2);
export_constant(IG_PET_EGG_SCROLL1);
export_constant(IG_PET_EGG_SCROLL2);
export_constant(IG_PET_EGG_SCROLL_BOX3);
export_constant(IG_PET_EGG_SCROLL_BOX4);
export_constant(IG_PET_EGG_SCROLL_BOX5);
export_constant(IG_PET_EGG_SCROLL3);
export_constant(IG_PET_EGG_SCROLL4);
export_constant(IG_PET_EGG_SCROLL5);
export_constant(IG_INFILTRATOR_BOX);
export_constant(IG_MURAMASA_BOX);
export_constant(IG_EXCALIBUR_BOX);
export_constant(IG_COMBAT_KNIFE_BOX);
export_constant(IG_COUNTER_DAGGER_BOX);
export_constant(IG_KAISER_KNUCKLE_BOX);
export_constant(IG_POLE_AXE_BOX);
export_constant(IG_MIGHTY_STAFF_BOX);
export_constant(IG_RIGHT_EPSILON_BOX);
export_constant(IG_BALISTAR_BOX);
export_constant(IG_DIARY_OF_GREAT_SAGE_BOX);
export_constant(IG_ASURA_BOX);
export_constant(IG_APPLE_OF_ARCHER_BOX);
export_constant(IG_BUNNY_BAND_BOX);
export_constant(IG_SAHKKAT_BOX);
export_constant(IG_LORD_CIRCLET_BOX);
export_constant(IG_ELVEN_EARS_BOX);
export_constant(IG_STEEL_FLOWER_BOX);
export_constant(IG_CRITICAL_RING_BOX);
export_constant(IG_EARRING_BOX);
export_constant(IG_RING_BOX);
export_constant(IG_NECKLACE_BOX);
export_constant(IG_GLOVE_BOX);
export_constant(IG_BROOCH_BOX);
export_constant(IG_ROSARY_BOX);
export_constant(IG_SAFETY_RING_BOX);
export_constant(IG_VESPER_CORE01_BOX);
export_constant(IG_VESPER_CORE02_BOX);
export_constant(IG_VESPER_CORE03_BOX);
export_constant(IG_VESPER_CORE04_BOX);
export_constant(IG_PET_EGG_SCROLL_BOX6);
export_constant(IG_PET_EGG_SCROLL_BOX7);
export_constant(IG_PET_EGG_SCROLL_BOX8);
export_constant(IG_PET_EGG_SCROLL_BOX9);
export_constant(IG_PET_EGG_SCROLL_BOX10);
export_constant(IG_PET_EGG_SCROLL_BOX11);
export_constant(IG_PET_EGG_SCROLL6);
export_constant(IG_PET_EGG_SCROLL7);
export_constant(IG_PET_EGG_SCROLL8);
export_constant(IG_PET_EGG_SCROLL9);
export_constant(IG_PET_EGG_SCROLL10);
export_constant(IG_PET_EGG_SCROLL11);
export_constant(IG_CP_HELM_SCROLL_BOX);
export_constant(IG_CP_SHIELD_SCROLL_BOX);
export_constant(IG_CP_ARMOR_SCROLL_BOX);
export_constant(IG_CP_WEAPON_SCROLL_BOX);
export_constant(IG_REPAIR_SCROLL_BOX);
export_constant(IG_SUPER_PET_EGG1);
export_constant(IG_SUPER_PET_EGG2);
export_constant(IG_SUPER_PET_EGG3);
export_constant(IG_SUPER_PET_EGG4);
export_constant(IG_SUPER_CARD_PET_EGG1);
export_constant(IG_SUPER_CARD_PET_EGG2);
export_constant(IG_SUPER_CARD_PET_EGG3);
export_constant(IG_SUPER_CARD_PET_EGG4);
export_constant(IG_VIGORGRA_PACKAGE1);
export_constant(IG_VIGORGRA_PACKAGE2);
export_constant(IG_VIGORGRA_PACKAGE3);
export_constant(IG_VIGORGRA_PACKAGE4);
export_constant(IG_VIGORGRA_PACKAGE5);
export_constant(IG_VIGORGRA_PACKAGE6);
export_constant(IG_VIGORGRA_PACKAGE7);
export_constant(IG_VIGORGRA_PACKAGE8);
export_constant(IG_VIGORGRA_PACKAGE9);
export_constant(IG_VIGORGRA_PACKAGE10);
export_constant(IG_VIGORGRA_PACKAGE11);
export_constant(IG_VIGORGRA_PACKAGE12);
export_constant(IG_PET_EGG_SCROLL12);
export_constant(IG_PET_EGG_SCROLL13);
export_constant(IG_PET_EGG_SCROLL14);
export_constant(IG_SUPER_PET_EGG5);
export_constant(IG_SUPER_PET_EGG6);
export_constant(IG_SUPER_PET_EGG7);
export_constant(IG_SUPER_PET_EGG8);
export_constant(IG_PET_EGG_SCROLL_E);
export_constant(IG_RAMEN_HAT_BOX);
export_constant(IG_MYSTERIOUS_TRAVEL_SACK1);
export_constant(IG_MYSTERIOUS_TRAVEL_SACK2);
export_constant(IG_MYSTERIOUS_TRAVEL_SACK3);
export_constant(IG_MYSTERIOUS_TRAVEL_SACK4);
export_constant(IG_MAGICIAN_CARD_BOX);
export_constant(IG_ACOLYTE_CARD_BOX);
export_constant(IG_ARCHER_CARD_BOX);
export_constant(IG_SWORDMAN_CARD_BOX);
export_constant(IG_THIEF_CARD_BOX);
export_constant(IG_MERCHANT_CARD_BOX);
export_constant(IG_HARD_CORE_SET_BOX);
export_constant(IG_KITTY_SET_BOX);
export_constant(IG_SOFT_CORE_SET_BOX);
export_constant(IG_DEVIRUCHI_SET_BOX);
export_constant(IG_MVP_HUNT_BOX);
export_constant(IG_BREWING_BOX);
export_constant(IG_XMAS_PET_SCROLL);
export_constant(IG_LUCKY_SCROLL08);
export_constant(IG_BR_SWORDPACKAGE);
export_constant(IG_BR_MAGEPACKAGE);
export_constant(IG_BR_ACOLPACKAGE);
export_constant(IG_BR_ARCHERPACKAGE);
export_constant(IG_BR_MERPACKAGE);
export_constant(IG_BR_THIEFPACKAGE);
export_constant(IG_ACIDBOMB_10_BOX);
export_constant(IG_BASIC_SIEGE_SUPPLY_BOX);
export_constant(IG_ADV_SIEGE_SUPPLY_BOX);
export_constant(IG_ELITE_SIEGE_SUPPLY_BOX);
export_constant(IG_SAKURA_SCROLL);
export_constant(IG_BEHOLDER_RING_BOX);
export_constant(IG_HALLOW_RING_BOX);
export_constant(IG_CLAMOROUS_RING_BOX);
export_constant(IG_CHEMICAL_RING_BOX);
export_constant(IG_INSECTICIDE_RING_BOX);
export_constant(IG_FISHER_RING_BOX);
export_constant(IG_DECUSSATE_RING_BOX);
export_constant(IG_BLOODY_RING_BOX);
export_constant(IG_SATANIC_RING_BOX);
export_constant(IG_DRAGOON_RING_BOX);
export_constant(IG_ANGEL_SCROLL);
export_constant(IG_DEVIL_SCROLL);
export_constant(IG_SURPRISE_SCROLL);
export_constant(IG_JULY7_SCROLL);
export_constant(IG_BACSOJIN_SCROLL);
export_constant(IG_ANIMAL_SCROLL);
export_constant(IG_HEART_SCROLL);
export_constant(IG_NEW_YEAR_SCROLL);
export_constant(IG_VALENTINE_PLEDGE_BOX);
export_constant(IG_OX_TAIL_SCROLL);
export_constant(IG_BUDDAH_SCROLL);
export_constant(IG_EVIL_INCARNATION);
export_constant(IG_F_CLOVER_BOX_MOUTH);
export_constant(IG_MOUTH_BUBBLE_GUM_BOX);
export_constant(IG_F_CLOVER_BOX_MOUTH2);
export_constant(IG_F_CLOVER_BOX_MOUTH4);
export_constant(IG_BGUM_BOX_IN_MOUTH2);
export_constant(IG_BGUM_BOX_IN_MOUTH4);
export_constant(IG_TW_OCTOBER_SCROLL);
export_constant(IG_MY_SCROLL1);
export_constant(IG_TW_NOV_SCROLL);
export_constant(IG_MY_SCROLL2);
export_constant(IG_PR_RESET_STONE_BOX);
export_constant(IG_FPR_RESET_STONE_BOX);
export_constant(IG_MAJESTIC_DEVIL_SCROLL);
export_constant(IG_LIFE_RIBBON_BOX);
export_constant(IG_LIFE_RIBBON_BOX2);
export_constant(IG_LIFE_RIBBON_BOX3);
export_constant(IG_MAGIC_CANDY_BOX10);
export_constant(IG_RWC2010_SUITCASEA);
export_constant(IG_RWC2010_SUITCASEB);
export_constant(IG_SAGITTARIUS_SCROLL);
export_constant(IG_SAGITTARIUS_SCR_BOX);
export_constant(IG_SAGITTAR_DIADEM_SCROLL);
export_constant(IG_SAGITTAR_DI_SCROLL_BOX);
export_constant(IG_CAPRI_CROWN_SCROLL);
export_constant(IG_CAPRI_CROWN_SCROLL_BOX);
export_constant(IG_CAPRICON_DI_SCROLL);
export_constant(IG_CAPRICON_DI_SCROLL_BOX);
export_constant(IG_AQUARIUS_DIADEM_SCROLL);
export_constant(IG_AQUARIUS_DI_SCROLL_BOX);
export_constant(IG_LOVELY_AQUARIUS_SCROLL);
export_constant(IG_LOVELY_AQUARIUS_BOX);
export_constant(IG_PISCES_DIADEM_SCROLL);
export_constant(IG_PISCES_DIADEM_BOX);
export_constant(IG_ENERGETIC_PISCES_SCROLL);
export_constant(IG_ENERGETIC_PISCES_BOX);
export_constant(IG_ARIES_SCROLL);
export_constant(IG_ARIES_SCROLL_BOX);
export_constant(IG_BOARDING_HALTER_BOX);
export_constant(IG_TAURUS_DIADEM_SCROLL);
export_constant(IG_TAURUS_DI_SCROLL_BOX);
export_constant(IG_UMBALA_SPIRIT_BOX2);
export_constant(IG_F_UMBALA_SPIRIT_BOX2);
export_constant(IG_TAURUS_CROWN_SCROLL);
export_constant(IG_TAURUS_CROWN_SCROLL_BOX);
export_constant(IG_GEMI_DIADEM_SCROLL);
export_constant(IG_GEMI_DIADEM_SCROLL_BOX);
export_constant(IG_SUPER_PET_EGG1_2);
export_constant(IG_SUPER_PET_EGG4_2);
export_constant(IG_FIRE_BRAND_BOX);
export_constant(IG_BR_INDEPENDENCE_SCROLL);
export_constant(IG_ALL_IN_ONE_RING_BOX);
export_constant(IG_GEMI_CROWN_SCROLL);
export_constant(IG_GEMI_CROWN_SCROLL_BOX);
export_constant(IG_RWC_SPECIAL_SCROLL);
export_constant(IG_RWC_LIMITED_SCROLL);
export_constant(IG_ASGARD_SCROLL);
export_constant(IG_MS_CANCER_SCROLL);
export_constant(IG_RWC_SUPER_SCROLL);
export_constant(IG_LEO_SCROLL);
export_constant(IG_MS_VIRGO_SCROLL);
export_constant(IG_LUCKY_EGG_C6);
export_constant(IG_LIBRA_SCROLL);
export_constant(IG_HALLO_SCROLL);
export_constant(IG_MS_SCORPIO_SCROLL);
export_constant(IG_TCG_CARD_SCROLL);
export_constant(IG_BOITATA_SCROLL);
export_constant(IG_LUCKY_EGG_C2);
export_constant(IG_LUCKY_EGG_C6_);
export_constant(IG_LUCKY_EGG_C9);
export_constant(IG_LUCKY_EGG_C7);
export_constant(IG_LUCKY_EGG_C8);
export_constant(IG_LUCKY_EGG_C10);
export_constant(IG_WIND_TYPE_SCROLL);
export_constant(IG_LUCKY_EGG_C3);
export_constant(IG_LUCKY_EGG_C4);
export_constant(IG_LUCKY_EGG_C5);
export_constant(IG_WEATHER_REPORT_BOX);
export_constant(IG_COMIN_ACTOR_BOX);
export_constant(IG_HEN_SET_BOX);
export_constant(IG_LUCKY_EGG_C);
export_constant(IG_WATER_TYPE_SCROLL);
export_constant(IG_EARTH_TYPE_SCROLL);
export_constant(IG_EARTH_TYPE_SCROLL_);
export_constant(IG_SPLASH_SCROLL);
export_constant(IG_VOCATION_SCROLL);
export_constant(IG_WISDOM_SCROLL);
export_constant(IG_PATRON_SCROLL);
export_constant(IG_HEAVEN_SCROLL);
export_constant(IG_TW_AUG_SCROLL);
export_constant(IG_TW_NOV_SCROLL2);
export_constant(IG_ILLUSION_NOTHING);
export_constant(IG_TW_SEP_SCROLL);
export_constant(IG_FLAME_LIGHT);
export_constant(IG_TW_RAINBOW_SCROLL);
export_constant(IG_TW_RED_SCROLL);
export_constant(IG_TW_ORANGE_SCROLL);
export_constant(IG_TW_YELLOW_SCROLL);
export_constant(IG_SCROLL_OF_DEATH);
export_constant(IG_SCROLL_OF_LIFE);
export_constant(IG_SCROLL_OF_MAGIC);
export_constant(IG_SCROLL_OF_THEWS);
export_constant(IG_SCROLL_OF_DARKNESS);
export_constant(IG_SCROLL_OF_HOLINESS);
export_constant(IG_HORNED_SCROLL);
export_constant(IG_MERCURY_SCROLL);
export_constant(IG_CHALLENGE_KIT);
export_constant(IG_TW_APRIL_SCROLL);
export_constant(IG_TW_OCTOBER_SCROLL_);
export_constant(IG_SUMMER_SCROLL3);
export_constant(IG_C_WING_OF_FLY_3DAY_BOX);
export_constant(IG_RWC_2012_SET_BOX);
export_constant(IG_EX_DEF_POTION_BOX);
export_constant(IG_RWC_SCROLL_2012);
export_constant(IG_OLD_COIN_POCKET);
export_constant(IG_HIGH_COIN_POCKET);
export_constant(IG_MID_COIN_POCKET);
export_constant(IG_LOW_COIN_POCKET);
export_constant(IG_SGRADE_POCKET);
export_constant(IG_AGRADE_POCKET);
export_constant(IG_BGRADE_POCKET);
export_constant(IG_CGRADE_POCKET);
export_constant(IG_DGRADE_POCKET);
export_constant(IG_EGRADE_POCKET);
export_constant(IG_PTOTECTION_SEAGOD_BOX);
export_constant(IG_HAIRTAIL_BOX1);
export_constant(IG_HAIRTAIL_BOX2);
export_constant(IG_SPEARFISH_BOX1);
export_constant(IG_SPEARFISH_BOX2);
export_constant(IG_SAUREL_BOX1);
export_constant(IG_SAUREL_BOX2);
export_constant(IG_TUNA_BOX1);
export_constant(IG_TUNA_BOX2);
export_constant(IG_MALANG_CRAB_BOX1);
export_constant(IG_MALANG_CRAB_BOX2);
export_constant(IG_BRINDLE_EEL_BOX1);
export_constant(IG_BRINDLE_EEL_BOX2);
export_constant(IG_PTOTECTION_SEAGOD_BOX2);
export_constant(IG_PTOTECTION_SEAGOD_BOX3);
export_constant(IG_OCTO_HSTICK_BOX);
export_constant(IG_OCTO_HSTICK_BOX2);
export_constant(IG_OCTO_HSTICK_BOX3);
export_constant(IG_SILVERVINE_FRUIT_BOX10);
export_constant(IG_SILVERVINE_FRUIT_BOX40);
export_constant(IG_SILVERVINE_FRUIT_BOX4);
export_constant(IG_MALANG_WOE_ENCARD_BOX);
export_constant(IG_XMAS_BLESS);
export_constant(IG_FIRE_TYPE_SCROLL);
export_constant(IG_BLUE_SCROLL);
export_constant(IG_GOOD_STUDENT_GIFT_BOX);
export_constant(IG_BAD_STUDENT_GIFT_BOX);
export_constant(IG_INDIGO_SCROLL);
export_constant(IG_VIOLET_SCROLL);
export_constant(IG_BI_HWANG_SCROLL);
export_constant(IG_JUNG_BI_SCROLL);
export_constant(IG_JE_UN_SCROLL);
export_constant(IG_YONG_KWANG_SCROLL);
export_constant(IG_HALLOWEEN_G_BOX);
export_constant(IG_SOLO_CHRISTMAS_GIFT);
export_constant(IG_SG_WEAPON_SUPPLY_BOX);
export_constant(IG_CANDY_HOLDER);
export_constant(IG_LUCKY_BAG);
export_constant(IG_HOLY_EGG_2);
export_constant(IG_ADVENTURER_RETURNS_SUPPORT_BOX);
export_constant(IG_SUPPORT_PACKAGE);
export_constant(IG_SUPPORT_PACKAGE10);
export_constant(IG_EVENT_ALMIGHTY_BOX);
export_constant(IG_EVENT_ALMIGHTY_BOX10);
export_constant(IG_LOTTOBOX1);
export_constant(IG_LOTTOBOX2);
export_constant(IG_LOTTOBOX3);
export_constant(IG_LOTTOBOX4);
export_constant(IG_LOTTOBOX5);
export_constant(IG_SUPPORT_PACKAGE_III);
export_constant(IG_SUPPORT_PACKAGE_III10);
export_constant(IG_UNLIMITED_BOX);
export_constant(IG_UNLIMITED_BOX10);
export_constant(IG_UNLIMITED_BOX_II);
export_constant(IG_UNLIMITED_BOX_II10);
export_constant(IG_THREE_MASTER_PACKAGE_III);
export_constant(IG_THREE_MASTER_PACKAGE_III10);
export_constant(IG_2013_RWC_SCROLL);
export_constant(IG_SUPPORT_PACKAGE_II);
export_constant(IG_SUPPORT_PACKAGE_II10);
export_constant(IG_LEVEL_UP_BOX100);
export_constant(IG_LEVEL_UP_BOX120);
export_constant(IG_LEVEL_UP_BOX130);
export_constant(IG_LEVEL_UP_BOX140);
export_constant(IG_LEVEL_UP_BOX150);
export_constant(IG_LEVEL_UP_BOX160);
export_constant(IG_GIFT_BUFF_SET );
export_constant(IG_LUCKY_SILVERVINE_FRUIT_BOX_III10);
export_constant(IG_LUCKY_SILVERVINE_FRUIT_BOX_III110);
export_constant(IG_OLD_ORE_BOX);
export_constant(IG_BLESSING_LUCKY_EGG);
export_constant(IG_SOGRAT_LUCKY_EGG);
export_constant(IG_GARNET_LUCKY_EGG);
export_constant(IG_AMORA_LUCKY_EGG);
export_constant(IG_VENUS_LUCKY_EGG);
export_constant(IG_ERZULIE_LUCKY_EGG);
export_constant(IG_MAJESTIC_LUCKY_EGG);
export_constant(IG_EPIC_HEROES_LUCKY_EGG);
export_constant(IG_HERO_MIDGARD_EGG);
export_constant(IG_MIDGARD_CELEBRATION_LUCKY_EGG);
export_constant(IG_RUNE_MIDGARD_IMORTAL_LUCKY_EGG);
export_constant(IG_RISE_MIDGARD_LUCKY_EGG);
export_constant(IG_TIME_TRAVEL_LUCKY_EGG);
export_constant(IG_SOLARIS_FESTIVAL_SCROLL);
export_constant(IG_MIDGARD_FESTIVAL_EGG);
export_constant(IG_MIDGARD_EGG);
export_constant(IG_SWEET_MIDGARD_EGG);
export_constant(IG_WINTER_MIDGARD_EGG);
export_constant(IG_SPRING_FESTIVAL_LUCKY_EGG);
export_constant(IG_BIRTHDAY_IDRO10TH_SCROLL);
export_constant(IG_REQUIEM_EGG);
export_constant(IG_HOLY_SPIRIT_EGG);
export_constant(IG_MEMORIAL_GARUDA_LUCKY_EGG);
export_constant(IG_MIRACLE_LUCKY_EGG);
export_constant(IG_LEGEND_HERO_LUCKY_EGG);
export_constant(IG_BLESSING_MIDGARD_LUCKY_EGG);
export_constant(IG_CHRONOSIAN_LUCKY_EGG);
export_constant(IG_SANCTUARY_LUCKY_EGG);
export_constant(IG_CYBORG_LUCKY_EGG);
export_constant(IG_UNDINE_LUCKY_EGG);
export_constant(IG_GOD_MATERIAL_BOX);
export_constant(IG_SEALED_MIND_BOX);
export_constant(IG_FROZEN_EGG_COSTUME);
export_constant(IG_HEADGEAR_COSTUME_SCROLL);
export_constant(IG_FLOWER_BLOSSOM_SCROLL);
export_constant(IG_SEASIDE_COSTUME_SCROLL);
export_constant(IG_SMITHY_LUCKY_EGG);
export_constant(IG_GANYMEDE_LUCKY_EGG);
export_constant(IG_LASTANGEL_LUCKYSCROLL);
export_constant(IG_VALKYRIE_LUCKY_EGG);
export_constant(IG_SPLASH_RAINBOW_LUCKY_EGG);
export_constant(IG_SHAPESHIFTER_COSTUME);
export_constant(IG_ALMIGHTY_LUCKY_EGG);
export_constant(IG_BURNING_FEATHER_COSTUME_SCROLL);
export_constant(IG_ANIMAL_COSTUME_SCROLL);
export_constant(IG_MIDGARD_LUCKY_SCROLL);
export_constant(IG_BLESSING_SCARLET_EGG);
export_constant(IG_MYSTICAL_COSTUME_SCROLL);
export_constant(IG_INK_BALL);
export_constant(IG_SOMETHING_CANDY_HOLDER);
export_constant(IG_SHINING_EGG);
export_constant(IG_SHINING_BLUE_LUCKY_EGG);
export_constant(IG_RUNE);
export_constant(IG_ELEMENT);
export_constant(IG_POISON);
export_constant(IG_CASH_FOOD);
export_constant(IG_BOMB);
export_constant(IG_THROWABLE);
export_constant(IG_MERCENARY);
#undef export_constant
#endif /* _SCRIPT_CONSTANTS_H_ */

View File

@ -10293,7 +10293,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
if( ammo_id <= 0 )
break;
sd->itemid = ammo_id;
if( itemdb_is_GNbomb(ammo_id) ) {
if( itemdb_group_item_exists(IG_BOMB, ammo_id) ) {
if(battle_check_target(src,bl,BCT_ENEMY) > 0) {// Only attack if the target is an enemy.
if( ammo_id == ITEMID_PINEAPPLE_BOMB )
map_foreachincell(skill_area_sub,bl->m,bl->x,bl->y,BL_CHAR,src,GN_SLINGITEM_RANGEMELEEATK,skill_lv,tick,flag|BCT_ENEMY|1,skill_castend_damage_id);
@ -10301,7 +10301,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
skill_attack(BF_WEAPON,src,src,bl,GN_SLINGITEM_RANGEMELEEATK,skill_lv,tick,flag);
} else //Otherwise, it fails, shows animation and removes items.
clif_skill_fail(sd,GN_SLINGITEM_RANGEMELEEATK,USESKILL_FAIL,0);
} else if (itemdb_is_GNthrowable(ammo_id))
} else if (itemdb_group_item_exists(IG_THROWABLE, ammo_id))
if (dstsd)
run_script(sd->inventory_data[i]->script, 0, dstsd->bl.id, fake_nd->bl.id);
}
@ -15748,7 +15748,7 @@ void skill_consume_requirement(struct map_session_data *sd, uint16 skill_id, uin
if( !require.itemid[i] )
continue;
if( itemid_isgemstone(require.itemid[i]) && skill_id != HW_GANBANTEIN && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD )
if( itemdb_group_item_exists(IG_GEMSTONE, require.itemid[i]) && skill_id != HW_GANBANTEIN && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD )
continue; //Gemstones are checked, but not substracted from inventory.
switch( skill_id ){
@ -15926,11 +15926,11 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
continue;
break;
case AB_ADORAMUS:
if( itemid_isgemstone(skill_db[idx]->require.itemid[i]) && (sd->special_state.no_gemstone == 2 || skill_check_pc_partner(sd,skill_id,&skill_lv, 1, 2)) )
if( itemdb_group_item_exists(IG_GEMSTONE, skill_db[idx]->require.itemid[i]) && (sd->special_state.no_gemstone == 2 || skill_check_pc_partner(sd,skill_id,&skill_lv, 1, 2)) )
continue;
break;
case WL_COMET:
if( itemid_isgemstone(skill_db[idx]->require.itemid[i]) && (sd->special_state.no_gemstone == 2 || skill_check_pc_partner(sd,skill_id,&skill_lv, 1, 0)) )
if( itemdb_group_item_exists(IG_GEMSTONE, skill_db[idx]->require.itemid[i]) && (sd->special_state.no_gemstone == 2 || skill_check_pc_partner(sd,skill_id,&skill_lv, 1, 0)) )
continue;
break;
}
@ -15953,7 +15953,7 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
}
// Check requirement for gemstone.
if (itemid_isgemstone(req.itemid[i])) {
if (itemdb_group_item_exists(IG_GEMSTONE, req.itemid[i])) {
if( sd->special_state.no_gemstone == 2 ) // Remove all Magic Stone required for all skills for VIP.
req.itemid[i] = req.amount[i] = 0;
else {
@ -19358,7 +19358,7 @@ int skill_magicdecoy(struct map_session_data *sd, unsigned short nameid) {
nullpo_ret(sd);
skill = sd->menuskill_val;
if( !nameid || !itemdb_is_element(nameid) || (i = pc_search_inventory(sd,nameid)) < 0 || !skill || pc_delitem(sd,i,1,0,0,LOG_TYPE_CONSUME) ) {
if( !nameid || !itemdb_group_item_exists(IG_ELEMENT, nameid) || (i = pc_search_inventory(sd,nameid)) < 0 || !skill || pc_delitem(sd,i,1,0,0,LOG_TYPE_CONSUME) ) {
clif_skill_fail(sd,NC_MAGICDECOY,USESKILL_FAIL_LEVEL,0);
return 0;
}

View File

@ -12,6 +12,7 @@
#include "../common/strlib.h"
#include "battle.h"
#include "itemdb.h"
#include "map.h"
#include "path.h"
#include "pc.h"
@ -3490,7 +3491,7 @@ int status_calc_pc_(struct map_session_data* sd, enum e_status_calc_opt opt)
if(sd->inventory_data[index]) { // Arrows
sd->bonus.arrow_atk += sd->inventory_data[index]->atk;
sd->state.lr_flag = 2;
if( !itemdb_is_GNthrowable(sd->inventory_data[index]->nameid) ) // Don't run scripts on throwable items
if( !itemdb_group_item_exists(IG_THROWABLE, sd->inventory_data[index]->nameid) ) // Don't run scripts on throwable items
run_script(sd->inventory_data[index]->script,0,sd->bl.id,0);
sd->state.lr_flag = 0;
if (!calculating) // Abort, run_script retriggered status_calc_pc. [Skotlex]