From c95be2e8779b32d44c3e9925c719cebd215e9f9f Mon Sep 17 00:00:00 2001 From: aleos89 Date: Tue, 22 Apr 2014 14:01:14 -0400 Subject: [PATCH] Implemented a flagged items database for item groups and Dead Branch type item checks. Credits to @cydh! --- conf/msg_conf/map_msg.conf | 4 +- conf/msg_conf/map_msg_idn.conf | 4 +- db/import-tmpl/item_flag.txt | 6 + db/pre-re/item_flag.txt | 53 +++++ db/re/item_flag.txt | 368 +++++++++++++++++++++++++++++++++ src/map/itemdb.c | 24 +++ src/map/itemdb.h | 7 +- src/map/pc.c | 23 +-- 8 files changed, 468 insertions(+), 21 deletions(-) create mode 100644 db/import-tmpl/item_flag.txt create mode 100644 db/pre-re/item_flag.txt create mode 100644 db/re/item_flag.txt diff --git a/conf/msg_conf/map_msg.conf b/conf/msg_conf/map_msg.conf index cee4aecc2f9..05814bc4fdf 100644 --- a/conf/msg_conf/map_msg.conf +++ b/conf/msg_conf/map_msg.conf @@ -746,7 +746,9 @@ 730: Character cannot be disguised while in monster form. 731: Transforming into monster is not allowed in Guild Wars. -//732-899 free +732: Item cannot be openned when your inventory is full. + +//733-899 free //------------------------------------ // More atcommands message diff --git a/conf/msg_conf/map_msg_idn.conf b/conf/msg_conf/map_msg_idn.conf index c7104b21214..91b66a9c56e 100644 --- a/conf/msg_conf/map_msg_idn.conf +++ b/conf/msg_conf/map_msg_idn.conf @@ -746,7 +746,9 @@ 730: Karakter tidak dapat disguise ketika sedang berwujud monster. 731: Perubahan menjadi monster tidak diizinkan dalam Guild Wars. -//732-899 kosong +732: Item tidak dapat dibuka ketika inventory penuh. + +//733-899 kosong //------------------------------------ // Pesan dalam perintah atcommand diff --git a/db/import-tmpl/item_flag.txt b/db/import-tmpl/item_flag.txt new file mode 100644 index 00000000000..70afe5c2c31 --- /dev/null +++ b/db/import-tmpl/item_flag.txt @@ -0,0 +1,6 @@ +// Flagged Items +// , +// +// : +// 1 - As Dead Branch item (will be logged at `branchlog` table and cannot be used at 'nobranch' mapflag) +// 2 - As item group container, check player's inventory and weight before consumed \ No newline at end of file diff --git a/db/pre-re/item_flag.txt b/db/pre-re/item_flag.txt new file mode 100644 index 00000000000..cf6248a0b69 --- /dev/null +++ b/db/pre-re/item_flag.txt @@ -0,0 +1,53 @@ +// Flagged Items +// , +// +// : +// 1 - As Dead Branch item (will be logged at `branchlog` table and cannot be used at 'nobranch' mapflag) +// 2 - As item group container, check player's inventory and weight before consumed + +// Logged as Dead Branch item +604,1 //Branch_Of_Dead_Tree +12103,1 //Bloody_Dead_Branch +12109,1 //Poring_Box +12024,1 //Red_Pouch_Of_Surprise +12258,1 //Bombring_Box + +// Item group container +603,2 //Old_Blue_Box +616,2 //Old_Card_Album +617,2 //Old_Violet_Box +618,2 //Worn_Out_Scroll +644,2 //Gift_Box +664,2 //Gift_Box_1 +665,2 //Gift_Box_2 +666,2 //Gift_Box_3 +667,2 //Gift_Box_4 +12023,2 //Giftbox_China +12025,2 //Egg_Boy +12026,2 //Egg_Girl +12038,2 //Lotto_Box04 +12104,2 //Random_Quiver +12105,2 //Set_Of_Taiming_Item +12106,2 //Accessory_Box +12107,2 //Wrapped_Mask +12108,2 //Bundle_Of_Magic_Scroll +12110,2 //First_Aid_Kit +12111,2 //Food_Package +12130,2 //Cookie_Bag +12186,2 //Red_Box +12187,2 //Green_Box +12189,2 //Red_Box_ +12194,2 //Hometown_Gift +12240,2 //Old_Yellow_Box +12244,2 //Old_Gift_Box +12246,2 //Magic_Card_Album +12248,2 //Masquerade_Ball_Box +12281,2 //Tresure_Box_WoE +12286,2 //Masquerade_Ball_Box2 +12334,2 //Cherish_Box +12339,2 //Cherish_Box_Ori +12355,2 //Xmas_Gift +12356,2 //Louise_Costume_Box +12702,2 //Old_Bleu_Box +12714,2 //Easter_Scroll +14596,2 //Pierre_Treasurebox \ No newline at end of file diff --git a/db/re/item_flag.txt b/db/re/item_flag.txt new file mode 100644 index 00000000000..337d432042d --- /dev/null +++ b/db/re/item_flag.txt @@ -0,0 +1,368 @@ +// Flagged Items +// , +// +// : +// 1 - As Dead Branch item (will be logged at `branchlog` table and cannot be used at 'nobranch' mapflag) +// 2 - As item group container, check player's inventory and weight before consumed + +// Logged as Dead Branch item +604,1 //Branch_Of_Dead_Tree +12103,1 //Bloody_Dead_Branch +12109,1 //Poring_Box +12024,1 //Red_Pouch_Of_Surprise +12258,1 //Bombring_Box + +// Item group container +603,2 //Old_Blue_Box +616,2 //Old_Card_Album +617,2 //Old_Violet_Box +644,2 //Gift_Box +664,2 //Gift_Box_1 +665,2 //Gift_Box_2 +666,2 //Gift_Box_3 +667,2 //Gift_Box_4 +12023,2 //Giftbox_China +12025,2 //Egg_Boy +12026,2 //Egg_Girl +12038,2 //Lotto_Box04 +12104,2 //Random_Quiver +12105,2 //Set_Of_Taiming_Item +12106,2 //Accessory_Box +12107,2 //Wrapped_Mask +12108,2 //Bundle_Of_Magic_Scroll +12110,2 //First_Aid_Kit +12111,2 //Food_Package +12130,2 //Cookie_Bag +12152,2 //Special_Box +12186,2 //Red_Box +12187,2 //Green_Box +12189,2 //Red_Box_ +12194,2 //Hometown_Gift +12240,2 //Old_Yellow_Box +12244,2 //Old_Gift_Box +12246,2 //Magic_Card_Album +12248,2 //Masquerade_Ball_Box +12281,2 //Tresure_Box_WoE +12286,2 //Masquerade_Ball_Box2 +12334,2 //Cherish_Box +12339,2 //Cherish_Box_Ori +12355,2 //Xmas_Gift +12356,2 //Louise_Costume_Box +12391,2 //Lucky_Egg_C +12403,2 //Lucky_Egg_C2 +12416,2 //Lucky_Egg_C3 +12473,2 //RWC_Parti_Box +12474,2 //RWC_Final_Comp_Box +12477,2 //Gift_Bundle +12479,2 //Caracas_Ring_Box +12492,2 //Crumpled_Paper +12493,2 //Lucky_Egg_C4 +12537,2 //Solo_Gift_Basket +12538,2 //Couple_Event_Basket +12540,2 //GM_Warp_Box +12541,2 //Fortune_Cookie1 +12542,2 //Fortune_Cookie2 +12543,2 //Fortune_Cookie3 +12545,2 //Lucky_Egg_C5 +12573,2 //Fruit_Basket +12577,2 //Lucky_Egg_C6 +12595,2 //Lucky_Egg_C7 +12612,2 //Old_Coin_Pocket +12613,2 //High_Coin_Pocket +12614,2 //Mid_Coin_Pocket +12615,2 //Low_Coin_Pocket +12616,2 //Sgrade_Pocket +12617,2 //Agrade_Pocket +12618,2 //Bgrade_Pocket +12619,2 //Cgrade_Pocket +12620,2 //Dgrade_Pocket +12621,2 //Egrade_Pocket +12623,2 //High_Weapon_Box +12641,2 //Lucky_Egg_C8 +12654,2 //Lucky_Egg_C9 +12673,2 //Lucky_Egg_C10 +12675,2 //Sg_Weapon_Supply_Box +12690,2 //Old_C_Album_Helm +12691,2 //Old_C_Album_Armor +12692,2 //Old_C_Album_Shield +12693,2 //Old_C_Album_Garment +12694,2 //Old_C_Album_Shoes +12695,2 //Old_C_Album_Acc +12698,2 //Old_C_Album_Weapon +12702,2 //Old_Bleu_Box +12703,2 //Holy_Egg_2 +12714,2 //Easter_Scroll +12756,2 //New_Gift_Envelope +12767,2 //Passion_FB_Hat_Box +12768,2 //Cool_FB_Hat_Box +12769,2 //Victory_FB_Hat_Box +12770,2 //Glory_FB_Hat_Box +12771,2 //Passion_Hat_Box2 +12772,2 //Cool_Hat_Box2 +12773,2 //Victory_Hat_Box2 +12826,2 //Wind_Type_Scroll +12827,2 //Water_Type_Scroll +12828,2 //Fire_Type_Scroll +12829,2 //Earth_Type_Scroll +12850,2 //Heaven_Scroll +12851,2 //Vocation_Scroll +12852,2 //Wisdom_Scroll +12853,2 //Patron_Scroll +12915,2 //Aspersio_5_Scroll_Box +12923,2 //Pet_Egg_Scroll_Box1 +12924,2 //Pet_Egg_Scroll_Box2 +12925,2 //Pet_Egg_Scroll1 +12926,2 //Pet_Egg_Scroll2 +12929,2 //Pet_Egg_Scroll_Box3 +12930,2 //Pet_Egg_Scroll_Box4 +12931,2 //Pet_Egg_Scroll_Box5 +12932,2 //Pet_Egg_Scroll3 +12933,2 //Pet_Egg_Scroll4 +12934,2 //Pet_Egg_Scroll5 +12935,2 //Infiltrator_Box +12936,2 //Muramasa_Box +12937,2 //Excalibur_Box +12938,2 //Combat_Knife_Box +12939,2 //Counter_Dagger_Box +12940,2 //Kaiser_Knuckle_Box +12941,2 //Pole_Axe_Box +12942,2 //Mighty_Staff_Box +12943,2 //Right_Epsilon_Box +12944,2 //Balistar_Box +12945,2 //Diary_Of_Great_Sage_Box +12946,2 //Asura_Box +12947,2 //Apple_Of_Archer_Box +12948,2 //Bunny_Band_Box +12949,2 //Sahkkat_Box +12950,2 //Lord_Circlet_Box +12951,2 //Elven_Ears_Box +12952,2 //Steel_Flower_Box +12953,2 //Critical_Ring_Box +12954,2 //Earring_Box +12955,2 //Ring_Box +12956,2 //Necklace_Box +12957,2 //Glove_Box +12958,2 //Brooch_Box +12959,2 //Rosary_Box +12960,2 //Safety_Ring_Box +12961,2 //Vesper_Core01_Box +12962,2 //Vesper_Core02_Box +12963,2 //Vesper_Core03_Box +12964,2 //Vesper_Core04_Box +12983,2 //Pet_Egg_Scroll_Box6 +12984,2 //Pet_Egg_Scroll_Box7 +12985,2 //Pet_Egg_Scroll_Box8 +12986,2 //Pet_Egg_Scroll_Box9 +12987,2 //Pet_Egg_Scroll_Box10 +12988,2 //Pet_Egg_Scroll_Box11 +12989,2 //Pet_Egg_Scroll6 +12990,2 //Pet_Egg_Scroll7 +12991,2 //Pet_Egg_Scroll8 +12992,2 //Pet_Egg_Scroll9 +12993,2 //Pet_Egg_Scroll10 +12994,2 //Pet_Egg_Scroll11 +13543,2 //CP_Helm_Scroll_Box +13544,2 //CP_Shield_Scroll_Box +13545,2 //CP_Armor_Scroll_Box +13546,2 //CP_Weapon_Scroll_Box +13547,2 //Repair_Scroll_Box +13617,2 //Super_Pet_Egg1 +13618,2 //Super_Pet_Egg2 +13619,2 //Super_Pet_Egg3 +13620,2 //Super_Pet_Egg4 +13630,2 //Super_Card_Pet_Egg1 +13631,2 //Super_Card_Pet_Egg2 +13632,2 //Super_Card_Pet_Egg3 +13633,2 //Super_Card_Pet_Egg4 +13634,2 //Vigorgra_Package1 +13635,2 //Vigorgra_Package2 +13636,2 //Vigorgra_Package3 +13637,2 //Vigorgra_Package4 +13638,2 //Vigorgra_Package5 +13639,2 //Vigorgra_Package6 +13640,2 //Vigorgra_Package7 +13641,2 //Vigorgra_Package8 +13642,2 //Vigorgra_Package9 +13643,2 //Vigorgra_Package10 +13644,2 //Vigorgra_Package11 +13645,2 //Vigorgra_Package12 +13701,2 //Pet_Egg_Scroll12 +13702,2 //Pet_Egg_Scroll13 +13703,2 //Pet_Egg_Scroll14 +13704,2 //Super_Pet_Egg5 +13705,2 //Super_Pet_Egg6 +13706,2 //Super_Pet_Egg7 +13707,2 //Super_Pet_Egg8 +13708,2 //Pet_Egg_Scroll_E +13725,2 //Ramen_Hat_Box +13773,2 //Fire_Brand_Box +13845,2 //Mysterious_Travel_Sack1 +13846,2 //Mysterious_Travel_Sack2 +13847,2 //Mysterious_Travel_Sack3 +13848,2 //Mysterious_Travel_Sack4 +13871,2 //Magician_Card_Box +13872,2 //Acolyte_Card_Box +13873,2 //Archer_Card_Box +13874,2 //Swordman_Card_Box +13875,2 //Thief_Card_Box +13876,2 //Merchant_Card_Box +13905,2 //Hard_Core_Set_Box +13906,2 //Kitty_Set_Box +13907,2 //Soft_Core_Set_Box +13908,2 //Deviruchi_Set_Box +13909,2 //MVP_Hunt_Box +13910,2 //Brewing_Box +13911,2 //Christmas_Pet_Scroll +13953,2 //All_In_One_Ring_Box +13989,2 //Acidbomb_10_Box +14001,2 //Basic_Siege_Supply_Box +14002,2 //Adv_Siege_Supply_Box +14003,2 //Elite_Siege_Supply_Box +14242,2 //Beholder_Ring_Box +14243,2 //Hallow_Ring_Box +14244,2 //Clamorous_Ring_Box +14245,2 //Chemical_Ring_Box +14246,2 //Insecticide_Ring_Box +14247,2 //Fisher_Ring_Box +14248,2 //Decussate_Ring_Box +14249,2 //Bloody_Ring_Box +14250,2 //Satanic_Ring_Box +14251,2 //Dragoon_Ring_Box +14296,2 //Angel_Scroll +14297,2 //Devil_Scroll +14298,2 //Surprise_Scroll +14306,2 //RWC_Special_Scroll +14307,2 //RWC_Limited_Scroll +14316,2 //July7_Scroll +14317,2 //Bacsojin_Scroll +14345,2 //Animal_Scroll +14363,2 //Heart_Scroll +14408,2 //New_Year_Scroll +14466,2 //Valentine_Pledge_Box +14469,2 //Ox_Tail_Scroll +14596,2 //Pierre_Treasurebox +14613,2 //RWC_Scroll_2012 +14626,2 //Indigo_Scroll +14643,2 //Violet_Scroll +14664,2 //Bi_Hwang_Scroll +14665,2 //Jung_Bi_Scroll +14666,2 //Je_Un_Scroll +14667,2 //Yong_Kwang_Scroll +16245,2 //Tw_April_Scroll +16257,2 //Buddah_Scroll +16304,2 //Evil_Incarnation +16371,2 //Tw_Aug_Scroll +16372,2 //F_Clover_Box_Mouth +16374,2 //Mouth_Bubble_Gum_Box +16385,2 //F_Clover_Box_Mouth2 +16386,2 //F_Clover_Box_Mouth4 +16389,2 //BGum_Box_In_Mouth2 +16390,2 //BGum_Box_In_Mouth4 +16409,2 //Tw_Sep_Scroll +16446,2 //Tw_October_Scroll +16456,2 //My_Scroll1 +16457,2 //Tw_Nov_Scroll +16466,2 //My_Scroll2 +16542,2 //Xmas_Bless +16555,2 //Pr_Reset_Stone_Box +16556,2 //FPr_Reset_Stone_Box +16562,2 //Majestic_Devil_Scroll +16576,2 //Illusion_Nothing +16638,2 //Life_Ribbon_Box +16639,2 //Life_Ribbon_Box2 +16640,2 //Life_Ribbon_Box3 +16652,2 //Flame_Light +16666,2 //Magic_Candy_Box10 +16673,2 //Libra_Scroll +16675,2 //Splash_Scroll +16681,2 //BR_Independence_Scroll +16682,2 //Boarding_Halter_Box +16687,2 //RWC2010_SuitcaseA +16688,2 //RWC2010_SuitcaseB +16741,2 //Hairtail_Box1 +16742,2 //Hairtail_Box2 +16743,2 //Spearfish_Box1 +16744,2 //Spearfish_Box2 +16745,2 //Saurel_Box1 +16746,2 //Saurel_Box2 +16747,2 //Tuna_Box1 +16748,2 //Tuna_Box2 +16749,2 //Malang_Crab_Box1 +16750,2 //Malang_Crab_Box2 +16751,2 //Brindle_Eel_Box1 +16752,2 //Brindle_Eel_Box2 +16757,2 //Hallo_Scroll +16760,2 //Umbala_Spirit_Box2 +16761,2 //F_Umbala_Spirit_Box2 +16763,2 //Ptotection_Seagod_Box2 +16764,2 //Ptotection_Seagod_Box3 +16765,2 //Octo_Hstick_Box +16766,2 //Octo_Hstick_Box2 +16767,2 //Octo_Hstick_Box3 +16770,2 //Silvervine_Fruit_Box10 +16771,2 //Silvervine_Fruit_Box40 +16774,2 //Asgard_Scroll +16775,2 //Sagittarius_Scroll +16826,2 //Sagittarius_Scr_Box +16972,2 //Weather_Report_Box +16974,2 //Comin_Actor_Box +16976,2 //Hen_Set_Box +16979,2 //Silvervine_Fruit_Box4 +16990,2 //Sagittar_Diadem_Scroll +16991,2 //Sagittar_Di_Scroll_Box +16996,2 //Capri_Crown_Scroll +16997,2 //Capri_Crown_Scroll_Box +17011,2 //Capricon_Di_Scroll +17012,2 //Capricon_Di_Scroll_Box +17013,2 //Malang_Woe_Encard_Box +17016,2 //Aquarius_Diadem_Scroll +17017,2 //Aquarius_Di_Scroll_Box +17020,2 //Tw_Nov_Scroll2 +17021,2 //Summer_Scroll3 +17022,2 //Super_Pet_Egg1_2 +17023,2 //Super_Pet_Egg4_2 +17024,2 //Lovely_Aquarius_Scroll +17025,2 //Lovely_Aquarius_Box +17026,2 //Boitata_Scroll +17028,2 //Pisces_Diadem_Scroll +17029,2 //Pisces_Diadem_Box +17035,2 //Energetic_Pisces_Scroll +17036,2 //Energetic_Pisces_Box +17050,2 //Aries_Scroll +17051,2 //Aries_Scroll_Box +17062,2 //Taurus_Diadem_Scroll +17063,2 //Taurus_Di_Scroll_Box +17077,2 //Taurus_Crown_Scroll +17078,2 //Taurus_Crown_Scroll_Box +17082,2 //Gemi_Diadem_Scroll +17083,2 //Gemi_Diadem_Scroll_Box +17107,2 //Gemi_Crown_Scroll +17108,2 //Gemi_Crown_Scroll_Box +17138,2 //Ms_Cancer_Scroll +17139,2 //RWC_Super_Scroll +17140,2 //Leo_Scroll +17141,2 //Ms_Virgo_Scroll +17143,2 //Ms_Scorpio_Scroll +17156,2 //TCG_Card_Scroll +17165,2 //Challenge_Kit +17209,2 //Tw_Rainbow_Scroll +17210,2 //Tw_Red_Scroll +17211,2 //Tw_Orange_Scroll +17212,2 //Tw_Yellow_Scroll +17233,2 //Scroll_Of_Death +17234,2 //Scroll_Of_Life +17235,2 //Scroll_Of_Magic +17236,2 //Scroll_Of_Thews +17237,2 //Scroll_Of_Darkness +17238,2 //Scroll_Of_Holiness +17239,2 //Horned_Scroll +17240,2 //Mercury_Scroll +17251,2 //C_Wing_Of_Fly_3Day_Box +17252,2 //RWC_2012_Set_Box +17256,2 //Good_Student_Gift_Box +17257,2 //Bad_Student_Gift_Box +17262,2 //Ex_Def_Potion_Box +22514,2 //Candy_Holder +22558,2 //Lucky_Bag +22669,2 //HALLOWEEN_G_BOX +22685,2 //Solo_Christmas_Gift \ No newline at end of file diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 7b81d8bcc15..163b7fcdcad 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -976,6 +976,29 @@ static bool itemdb_read_nouse(char* fields[], int columns, int current) { return true; } +/** Misc Item flags +* , +* &1 - Log as dead branch +* &2 - As item container +*/ +static bool itemdb_read_flag(char* fields[], int columns, int current) { + uint16 nameid = atoi(fields[0]); + uint8 flag = atoi(fields[1]); + struct item_data *id; + + if (!(id = itemdb_exists(nameid))) { + ShowError("itemdb_read_flag: Invalid item item with id %d\n", nameid); + return true; + } + + if (flag&1) + id->flag.dead_branch = 1; + if (flag&2) + id->flag.group = 1; + + return true; +} + /** * @return: amount of retrieved entries. **/ @@ -1595,6 +1618,7 @@ static void itemdb_read(void) { sv_readdb(dbsubpath2, "item_trade.txt", ',', 3, 3, -1, &itemdb_read_itemtrade, i); sv_readdb(dbsubpath2, "item_delay.txt", ',', 2, 2, -1, &itemdb_read_itemdelay, i); sv_readdb(dbsubpath2, "item_buyingstore.txt", ',', 1, 1, -1, &itemdb_read_buyingstore, i); + sv_readdb(dbsubpath2, "item_flag.txt", ',', 2, 2, -1, &itemdb_read_flag, i); aFree(dbsubpath1); aFree(dbsubpath2); } diff --git a/src/map/itemdb.h b/src/map/itemdb.h index c58f20a055a..2fcbc6d60c3 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -46,7 +46,6 @@ enum item_itemid { ITEMID_WHITE_SLIM_POTION = 547, ITEMID_WING_OF_FLY = 601, ITEMID_WING_OF_BUTTERFLY = 602, - ITEMID_BRANCH_OF_DEAD_TREE = 604, ITEMID_ANODYNE = 605, ITEMID_ALOEBERA = 606, ITEMID_EMPTY_BOTTLE = 713, @@ -86,9 +85,6 @@ enum item_itemid { ITEMID_SKULL_ = 7420, ITEMID_TOKEN_OF_SIEGFRIED = 7621, ITEMID_TRAP_ALLOY = 7940, - ITEMID_RED_POUCH_OF_SURPRISE = 12024, - ITEMID_BLOODY_DEAD_BRANCH = 12103, - ITEMID_PORING_BOX = 12109, ITEMID_MERCENARY_RED_POTION = 12184, ITEMID_MERCENARY_BLUE_POTION = 12185, ITEMID_BATTLE_MANUAL = 12208, @@ -105,7 +101,6 @@ enum item_itemid { ITEMID_REINS_OF_MOUNT = 12622, ITEMID_COMP_BUBBLE_GUM = 12264, ITEMID_NOBLE_NAMEPLATE = 12705, - ITEMID_TREASURE_CHEST_SUMMONED_II = 12863, ITEMID_DUN_TELE_SCROLL1 = 14527, ITEMID_BATTLE_MANUAL25 = 14532, ITEMID_BATTLE_MANUAL100 = 14533, @@ -369,6 +364,8 @@ struct item_data { unsigned trade_restriction : 9; //Item restrictions mask [Skotlex] unsigned autoequip: 1; unsigned buyingstore : 1; + unsigned dead_branch : 1; // As dead branch item. Logged at `branchlog` table and cannot be used at 'nobranch' mapflag [Cydh] + unsigned group : 1; // As item group container [Cydh] } flag; struct {// item stacking limitation unsigned short amount; diff --git a/src/map/pc.c b/src/map/pc.c index c2e630fc20b..1e36c80b8e5 100755 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4321,6 +4321,9 @@ int pc_isUseitem(struct map_session_data *sd,int n) return 0; // You cannot use this item while storage is open. } + if (item->flag.dead_branch && (map[sd->bl.m].flag.nobranch || map_flag_gvg(sd->bl.m))) + return 0; + switch( nameid ) { case ITEMID_ANODYNE: if( map_flag_gvg(sd->bl.m) ) @@ -4351,14 +4354,6 @@ int pc_isUseitem(struct map_session_data *sd,int n) if( nameid != 601 && nameid != 12212 && map[sd->bl.m].flag.noreturn ) return 0; break; - case ITEMID_BRANCH_OF_DEAD_TREE: - case ITEMID_RED_POUCH_OF_SURPRISE: - case ITEMID_BLOODY_DEAD_BRANCH: - case ITEMID_PORING_BOX: - case ITEMID_TREASURE_CHEST_SUMMONED_II: - if( map[sd->bl.m].flag.nobranch || map_flag_gvg(sd->bl.m) ) - return 0; - break; case ITEMID_BUBBLE_GUM: case ITEMID_COMP_BUBBLE_GUM: if( sd->sc.data[SC_ITEMBOOST] ) @@ -4413,16 +4408,16 @@ int pc_isUseitem(struct map_session_data *sd,int n) else if( itemdb_is_poison(nameid) && (sd->class_&MAPID_THIRDMASK) != MAPID_GUILLOTINE_CROSS ) return 0; - /*if( item->group ) { //@TODO + if( item->flag.group ) { if( pc_is90overweight(sd) ) { - clif_msgtable(sd->fd,ITEM_CANT_OBTAIN_WEIGHT); + clif_msgtable(sd->fd, ITEM_CANT_OBTAIN_WEIGHT); return 0; } if( !pc_inventoryblank(sd) ) { - clif_colormes(sd,color_table[COLOR_RED],msg_txt(1477)); //Item cannot be open when inventory is full + clif_colormes(sd, color_table[COLOR_RED], msg_txt(sd, 1477)); //Item cannot be open when inventory is full return 0; } - }*/ + } //Gender check if(item->sex != 2 && sd->status.sex != item->sex) @@ -4459,8 +4454,8 @@ int pc_isUseitem(struct map_session_data *sd,int n) if (!pc_isItemClass(sd,item)) return 0; - //Dead Branch & Bloody Branch & Porings Box - if( nameid == ITEMID_BRANCH_OF_DEAD_TREE || nameid == ITEMID_BLOODY_DEAD_BRANCH || nameid == ITEMID_PORING_BOX || nameid == ITEMID_TREASURE_CHEST_SUMMONED_II ) + //Dead Branch items + if( item->flag.dead_branch ) log_branch(sd); return 1;