diff --git a/db/const.txt b/db/const.txt index 85a70c148d..0dcd314ca1 100644 --- a/db/const.txt +++ b/db/const.txt @@ -625,6 +625,13 @@ EQI_COSTUME_HEAD_LOW 11 EQI_COSTUME_HEAD_MID 12 EQI_COSTUME_HEAD_TOP 13 EQI_COSTUME_GARMENT 14 +EQI_AMMO 15 +EQI_SHADOW_ARMOR 16 +EQI_SHADOW_WEAPON 17 +EQI_SHADOW_SHIELD 18 +EQI_SHADOW_SHOES 19 +EQI_SHADOW_ACC_R 20 +EQI_SHADOW_ACC_L 21 LOOK_BASE 0 LOOK_HAIR 1 diff --git a/db/re/item_combo_db.txt b/db/re/item_combo_db.txt index 622304cd07..4356102514 100644 --- a/db/re/item_combo_db.txt +++ b/db/re/item_combo_db.txt @@ -230,3 +230,31 @@ 15088:18817:18819,{ bonus bBaseAtk,BaseLevel/3; bonus2 bExpAddRace,RC_NonBoss,5; bonus2 bExpAddRace,RC_Boss,5; } 18507:18539,{ bonus bUseSPrate,-3; } 18559:18560,{ bonus bCritAtkRate,5; } + +4606:4605,{ bonus2 bSubEle,0,20; bonus bFlee,20; bonus2 bHPLossRate,100,6000; bonus2 bSPLossRate,6,6000; } +24072:24075,{ bonus bMaxHPrate,1; bonus bMaxSPrate,1; } +24073:24076,{ bonus bMaxHPrate,1; bonus bMaxSPrate,1; } +24074:24077,{ bonus bMaxHPrate,1; bonus bMaxSPrate,1; } +24018:24019:24020,{ if(getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L) + getequiprefinerycnt(EQI_SHADOW_WEAPON) >= 23) { bonus bAtkRate,1; } } +24021:24022:24023,{ if(getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L) + getequiprefinerycnt(EQI_SHADOW_WEAPON) >= 23) { bonus bMatkRate,1; } } +24025:24028,{ set .@i,getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_SHOES); bonus bMaxHP,.@i; bonus bMaxSP,.@i; if(.@i >= 15) { bonus bMaxHPrate,1; } } +24026:24027,{ set .@i,getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_SHIELD); bonus bDef,.@i; if(.@i >= 15) { bonus2 bSubEle,0,1; } } +24029:24031,{ set .@i,getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_WEAPON); bonus bAtk,.@i; if(.@i >= 15) { bonus bLongAtkRate,1; } } +24030:24032,{ set .@i,getequiprefinerycnt(EQI_SHADOW_ARMOR) + getequiprefinerycnt(EQI_SHADOW_WEAPON); bonus bCritical,.@i; bonus bAtk,.@i; if(.@i >= 15) { bonus bCritAtkRate,1; } } +24034:24040,{ bonus bLuk,1; } +24035:24041,{ bonus bStr,1; } +24036:24042,{ bonus bInt,1; } +24037:24043,{ bonus bDex,1; } +24038:24044,{ bonus bVit,1; } +24039:24045,{ bonus bAgi,1; } +24046:24051,{ bonus2 bSubEle,0,1; if(getequiprefinerycnt(EQI_SHADOW_ACC_R) + getequiprefinerycnt(EQI_SHADOW_ACC_L)) { bonus2 bSubEle,0,1; } } +24052:24062,{ bonus2 bExpAddRace,7,3; } +24053:24063,{ bonus2 bAddRace,10,5; bonus2 bMagicAddRace,10,5; } +24054:24065,{ bonus2 bExpAddRace,2,3; } +24055:24066,{ bonus2 bExpAddRace,4,3; } +24056:24067,{ bonus2 bExpAddRace,5,3; } +24057:24071,{ bonus2 bExpAddRace,9,3; } +24058:24068,{ bonus2 bExpAddRace,8,3; } +24059:24069,{ bonus2 bExpAddRace,0,3; } +24060:24070,{ bonus2 bExpAddRace,1,3; } +24061:24064,{ bonus2 bExpAddRace,3,3; } \ No newline at end of file diff --git a/db/re/item_db.txt b/db/re/item_db.txt index e086f72a4c..65801fa23b 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -1978,6 +1978,8 @@ 2969,RWC_2012_Pendant_,Chambered RWC 2012 Pendant,5,20,,200,,0,,1,0xFFFFFFFF,63,2,136,,0,0,0,{ bonus bMatkRate,1; },{},{} 2986,Snake_Ring,Snake Ring,5,20,,100,,2,,1,0xFFFFFFFF,63,2,136,,0,0,0,{ bonus bDex,3; bonus bMdef,2; },{},{} 2987,Snake_Pendant,Snake Pendant,5,20,,100,,3,,1,0xFFFFFFFF,63,2,136,,0,0,0,{ bonus bAgi,3; bonus bLuk,2; bonus bMdef,3; },{},{} +2995,DEX_Complement,DEX Complement,5,20,,100,,0,,1,0x00000400,56,2,136,,100,0,0,{ bonus bUseSPrate,-10; bonus bDelayrate,-10; bonus bVariableCastrate,-10; bonus2 bSkillVariableCast,"NC_AXEBOOMERANG",-2000; if(getequipid(EQI_HAND_R) == 1368) { bonus bAtkRate,100; } },{},{} + // Cards //=================================================================== 4001,Poring_Card,Poring Card,6,20,,10,,,,,,,,16,,,,,{ bonus bLuk,2; bonus bFlee2,1; },{},{} @@ -2530,6 +2532,55 @@ 4553,Sid_Card,Sid Card,6,20,,10,,,,,,,,16,,,,,{},{},{} 4554,Diego_Card,Diego Card,6,20,,10,,,,,,,,4,,,,,{},{},{} 4555,Scrat_Card,Scrat Card,6,20,,10,,,,,,,,769,,,,,{},{},{} +4560,Clown_Alphoccio_Card,Clown Alphoccio Card,6,20,,10,,,,,,,,16,,,,,{ skill "BA_POEMBRAGI",10; bonus bFlee,(readparam(bVit)>=110)?40:20; },{},{} +4561,Professor_Celia_Card,Professor Celia Card,6,20,,10,,,,,,,,16,,,,,{ bonus bMatkRate,(readparam(bDex)>=110)?14:7; bonus5 bAutoSpellWhenHit,"SA_LANDPROTECTOR",5,70,BF_MAGIC,0; },{},{} +4562,Champion_Chen_Card,Champion Chen Card,6,20,,10,,,,,,,,16,,,,,{ bonus bAtkRate,(readparam(bAgi)>=110)?14:7; bonus5 bAutoSpellWhenHit,"MO_INVESTIGATE",5,70,BF_WEAPON,1; },{},{} +4563,Creator_Flamel_Card,Creator Flamel Card,6,20,,10,,,,,,,,16,,,,,{ bonus bCritical,(readparam(bStr)>=110)?40:20; bonus5 bAutoSpellWhenHit,"AM_ACIDTERROR",5,70,BF_WEAPON,1; },{},{} +4564,Stalker_Gertie_Card,Stalker Gertie Card,6,20,,10,,,,,,,,16,,,,,{ bonus bHit,(readparam(bLuk)>=110)?40:20; bonus5 bAutoSpellWhenHit,"ST_FULLSTRIP",1,70,BF_WEAPON,1; },{},{} +4565,Paladin_Randel_Card,Paladin Randel Card,6,20,,10,,,,,,,,16,,,,,{ bonus bMaxHPrate,(readparam(bLuk)>=110)?20:10; bonus5 bAutoSpellWhenHit,"CR_GRANDCROSS",10,70,BF_WEAPON,0; },{},{} +4566,Gypsy_Trentini_Card,Gypsy Trentini Card,6,20,,10,,,,,,,,16,,,,,{ skill "DC_FORTUNEKISS",10; bonus bFlee,(readparam(bVit)>=110)?40:20; },{},{} +4567,Alphoccio_Card,Alphoccio Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; if(BaseJob==Job_Bard) { bonus bMaxHPrate,10; bonus bMaxSPrate,5;} },{},{} +4568,Celia_Card,Celia Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; skill "SA_ABRACADABRA",1; },{},{} +4569,Chen_Card,Chen Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; skill "MO_CALLSPIRITS",2; },{},{} +4570,Flamel_Card,Flamel Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; bonus2 bAddItemHealRate,70,200; },{},{} +4571,Gertie_Card,Gertie Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; skill "RG_CLOSECONFINE",1; },{},{} +4572,Randel_Card,Randel Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; skill "CR_AUTOGUARD",3; },{},{} +4573,Trentini_Card,Trentini Card,6,20,,10,,,,,,,,4,,,,,{ bonus bFlee,10; if(BaseJob==Job_Dancer) { bonus bMaxHPrate,10; bonus bMaxSPrate,5;} },{},{} +4574,General_Daehyon_Card,General Daehyon Card,6,20,,10,,,,,,,,2,,,,,{ if((getiteminfo(getequipid(EQI_HAND_R),14) == 3) || (getiteminfo(getequipid(EQI_HAND_R),14) == 4)) { bonus bAtk,100; } },{},{} +4575,Armed_Guard_Soheon_Card,Armed Guard Soheon Card,6,20,,10,,,,,,,,2,,,,,{ bonus bAtk,10; if(getiteminfo(getequipid(EQI_HAND_R),14) == 1) { if(getrefine()>=10) { bonus bAspd,1; } if(getrefine()>=14) { bonus bAspd,1; } } },{},{} +4576,Gioia_Card,Gioia Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bMagicAtkEle,4,100; bonus2 bMagicAtkEle,8,100; bonus2 bSubEle,0,-30; bonus2 bSubEle,1,-30; bonus2 bSubEle,2,-30; bonus2 bSubEle,3,-30; bonus2 bSubEle,4,-30; bonus2 bSubEle,5,-30; bonus2 bSubEle,6,-30; bonus2 bSubEle,7,-30; bonus2 bSubEle,8,-30; bonus2 bSubEle,9,-30; },{},{} +4577,Elvira_Card,Elvira Card,6,20,,10,,,,,,,,136,,,,,{ bonus2 bMagicAtkEle,4,20; bonus2 bMagicAtkEle,8,20; },{},{} +4578,Angry_Student_Pyuriel_Card,Angry Student Pyuriel Card,6,20,,10,,,,,,,,2,,,,,{ bonus bCritAtkRate,30; bonus2 bSubRace,0,-10; bonus2 bSubRace,1,-10; bonus2 bSubRace,2,-10; bonus2 bSubRace,3,-10; bonus2 bSubRace,4,-10; bonus2 bSubRace,5,-10; bonus2 bSubRace,6,-10; bonus2 bSubRace,7,-10; bonus2 bSubRace,8,-10; bonus2 bSubRace,9,-10; },{},{} +4579,Warrior_Lola_Card,Warrior Lola Card,6,20,,10,,,,,,,,2,,,,,{ if(getiteminfo(getequipid(EQI_HAND_R),14) == 8) { bonus bAtk,20; bonus bCritical,10; } bonus bAtk,getrefine(); bonus bCritical,getrefine(); },{},{} +4580,Dark_Guardian_Kades_Card,Dark Guardian Kades Card,6,20,,10,,,,,,,,4,,,,,{ bonus2 bSubEle,1,50; bonus2 bSubEle,2,50; bonus2 bSubEle,3,50; bonus2 bSubEle,4,50; bonus2 bSubEle,7,50; bonus2 bSubEle,9,50; bonus2 bSubEle,6,-100; bonus2 bSubEle,8,-100; },{},{} +4581,Rudo_Card,Rudo Card,6,20,,10,,,,,,,,64,,,,,{ /* TODO: { heal 0,-40; bonus_script "{ bonus bAgi,44; }",3,15,0; sc_start SC_SpeedUp1,3000,0; } */},{},{} +4582,Bungisngis_Card,Bungisngis Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMaxHPrate,(getrefine()/2); },{},{} +4583,Engkanto_Card,Engkanto Card,6,20,,10,,,,,,,,769,,,,,{ bonus2 bAddEle,5,30; bonus2 bMagicAddEle,5,30; bonus2 bIgnoreDefRate,3,30; },{},{} +4584,Manananggal_Card,Manananggal Card,6,20,,10,,,,,,,,2,,,,,{ bonus bSPDrainValue,1; bonus bMaxSPrate,-1; },{},{} +4585,Mangkukulam_Card,Mangkukulam Card,6,20,,10,,,,,,,,16,,,,,{ bonus bMaxSPrate,10; bonus bHPGainValue,-666; },{},{} +4586,Tikbalang_Card,Tikbalang Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMatk,10; bonus2 bMagicAtkEle,4,5; },{},{} +4587,Tiyanak_Card,Tiyanak Card,6,20,,10,,,,,,,,136,,,,,{ bonus2 bCriticalAddRace,2,12; bonus2 bCriticalAddRace,5,12; bonus2 bCriticalAddRace,7,12; },{},{} +4588,Wakwak_Card,Wakwak Card,6,20,,10,,,,,,,,4,,,,,{ bonus bAtk,5*readparam(bStr)/10; },{},{} +4589,Jejeling_Card,Jejeling Card,6,20,,10,,,,,,,,4,,,,,{ bonus bMaxHP,200*readparam(bVit)/10; },{},{} +4590,Bangungot_Card,Bangungot Card,6,20,,10,,,,,,,,16,,,,,{ bonus bInt,4; bonus5 bAutoSpellWhenHit,"NPC_WIDESLEEP",5,70,BF_MAGIC,0; },{},{} +4591,Bakonawa_Card,Bakonawa Card,6,20,,10,,,,,,,,16,,,,,{ bonus bStr,4; bonus5 bAutoSpellWhenHit,"NPC_WIDEBLEEDING",5,70,BF_WEAPON,0; },{},{} +4592,Buwaya_Card,Buwaya Card,6,20,,10,,,,,,,,16,,,,,{ bonus bVit,4; bonus5 bAutoSpellWhenHit,"NPC_WIDESTONE",5,70,BF_MAGIC,0; },{},{} +4593,Menblatt_Card,Menblatt Card,6,20,,10,,,,,,,,4,,,,,{ bonus bLongAtkDef,readparam(bDex)/10; },{},{} +4594,Petal_Card,Petal Card,6,20,,10,,,,,,,,4,,,,,{ bonus bCritAtkRate,2*(readparam(bLuk)/10); },{},{} +4595,Cenere_Card,Cenere Card,6,20,,10,,,,,,,,4,,,,,{ bonus bAspdRate,2*(readparam(bAgi)/10); bonus bDelayrate,-2*(readparam(bAgi)/10); },{},{} +4596,Antique_Book_Card,Antique Book Card,6,20,,10,,,,,,,,4,,,,,{ bonus bMatk,5*(readparam(bInt)/10); },{},{} +4597,Lichtern_Blue_Card,Lichtern Blue Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMatk,10; bonus2 bMagicAddEle,1,(getrefine()>=9)?10:5; },{},{} +4598,Lichtern_Green_Card,Lichtern Green Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMatk,10; bonus2 bMagicAddEle,8,(getrefine()>=9)?10:5; },{},{} +4599,Lichtern_Red_Card,Lichtern Red Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMatk,10; bonus2 bMagicAddEle,3,(getrefine()>=9)?10:5; },{},{} +4600,Lichtern_Yellow_Card,Lichtern Yellow Card,6,20,,10,,,,,,,,769,,,,,{ bonus bMatk,10; bonus2 bMagicAddEle,2,(getrefine()>=9)?10:5; },{},{} +4601,Amdarais_Card,Amdarais Card,6,20,,10,,,,,,,,16,,,,,{ bonus bAtkRate,15; bonus bMatkRate,15; bonus2 bHPLossRate,666,4000; bonus2 bSPLossRate,66,4000; },{},{ heal -6666,-666; } +4602,Realized_Amdarais_Card,Realized Amdarais Card,6,20,,10,,,,,,,,16,,,,,{ bonus bAtkRate,20; bonus bMatkRate,20; bonus2 bHPLossRate,666,6000; bonus2 bSPLossRate,66,6000; },{},{ heal -6666,-666; } +4603,Corruption_Root_Card,Corruption Root Card,6,20,,10,,,,,,,,2,,,,,{ bonus bAtk,20; bonus5 bAutoSpellWhenHit,"NPC_WIDESTONE",1,70,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"NPC_WIDESLEEP",1,70,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"NPC_WIDECURSE",1,70,BF_WEAPON,0; },{},{} +4604,Realized_Corruption_Root_Card,Realized Corruption Root Card,6,20,,10,,,,,,,,2,,,,,{ bonus bAtk,30; bonus5 bAutoSpellWhenHit,"NPC_WIDESTONE",2,70,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"NPC_WIDESLEEP",2,70,BF_WEAPON,0; bonus5 bAutoSpellWhenHit,"NPC_WIDECURSE",2,70,BF_WEAPON,0; },{},{} +4605,Agony_Of_Royal_Knight_Card,Agony Of Royal Knight Card,6,20,,10,,,,,,,,16,,,,,{ bonus bMaxHPrate,-44; bonus bHPGainValue,200+10*getrefine(); },{},{} +4606,Grudge_of_Royal_Knight_Card,Grudge of Royal Knight Card,6,20,,10,,,,,,,,4,,,,,{ bonus bMaxSPrate,-44; bonus bSPGainValue,20+(getrefine()/2); },{},{ heal 0,-444; } +4607,Faithful_Manager_Card,Faithful Manager Card,6,20,,10,,,,,,,,2,,,,,{ bonus bAtk,5; bonus bMatk,5; if(getiteminfo(getequipid(EQI_HAND_R),14) == 15) { if(getrefine()>=10) { bonus bAtk,20; bonus bMatk,20; } if(getrefine()>=14) { bonus bAtk,20; bonus bMatk,20; } } },{},{} + // Armor Enchant System //=================================================================== 4700,Strength1,STR+1,6,20,,10,,,,,,,,16,,,,,{ bonus bStr,1; },{},{} @@ -2700,6 +2751,9 @@ 4868,MHP4,MHP+4%,6,20,,10,,,,,,,,16,,,,,{ bonus bMaxHPrate,4; },{},{} 4870,SP25,SP+25,6,20,,10,,,,,,,,16,,,,,{ bonus bMaxSP,25; },{},{} 4871,SP75,SP+75,6,20,,10,,,,,,,,16,,,,,{ bonus bMaxSP,75; },{},{} +4936,Large_Size_Attack_1,Large Size Attack 1,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddSize,2,1; },{},{} +4937,Medium_Size_Attack_1,Medium Size Attack 1,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddSize,1,1; },{},{} +4938,Small_Size_Attack_1,Small Size Attack 1,6,20,,10,,,,,,,,16,,,,,{ bonus2 bAddSize,0,1; },{},{} // More Headgears //=================================================================== 5001,Headset,Headset,5,20,,200,,3,,0,0xFFFFFFFE,63,2,256,,1,1,87,{ bonus2 bResEff,Eff_Curse,1000; },{},{} @@ -4145,6 +4199,10 @@ 6665,RWC_Inicializer,RWC Inicializer,3,0,,10,,,,,,,,,,,,,{},{},{} 6682,Bag_Of_Selling_Goods,Bag Of Selling Goods,3,20,,10,,,,,,,,,,,,,{},{},{} 6712,Lovely_Stick,Lovely Stick,3,0,,0,,,,,,,,,,,,,{},{},{} +6755,Contaminated_Magic,Contaminated Magic,3,20,,10,,,,,,,,,,,,,{},{},{} +//6790,Large_Stone,Large Stone,5,20,,100,,0,,0,0xFFFFFFFF,63,2,1024,,1,1,0,{ bonus2 bAddSize,2,1; },{},{} +//6791,Medium_Stone,Medium Stone,5,20,,100,,0,,0,0xFFFFFFFF,63,2,1024,,1,1,0,{ bonus2 bAddSize,1,1; },{},{} +//6792,Small_Stone,Small Stone,5,20,,100,,0,,0,0xFFFFFFFF,63,2,1024,,1,1,0,{ bonus2 bAddSize,0,1; },{},{} // 7001,Mould_Powder,Mould Powder,3,466,,10,,,,,,,,,,,,,{},{},{} 7002,Ogre_Tooth,Ogre Tooth,3,658,,10,,,,,,,,,,,,,{},{},{} @@ -7526,6 +7584,9 @@ //14665,Jung_Bi_Scroll //14666,Je_Un_Scroll //14667,Yong_Kwang_Scroll +14695,Costume_Enchant_Stone_Box_3,Costume Enchant Stone Box 3,2,0,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem rand(6790,6792),1; getitem 4936,1; getitem 4937,1; getitem 4938,1; },{},{} +14696,Sealed_Gloom_Under_Night_Gachapon,Sealed Gloom Under Night Gachapon,3,0,,10,,,,,,,,,,,,,{},{},{} + // More Armors 15000,Bone_Plate,Bone Plate,5,20,,1000,,60,,1,0x000654E2,18,2,16,,85,1,0,{ bonus bStr,1; bonus bMdef,3; bonus2 bIgnoreDefRate,RC_DemiHuman,10; bonus2 bIgnoreDefRate,RC_Brute,10; bonus3 bAutoSpellWhenHit,"NPC_WIDEBLEEDING",1,10; },{},{} 15001,Odin's_Blessing_I,Odin's Blessing,5,0,,0,,10,,0,0xFFFFFFFE,63,2,16,,0,0,0,{},{},{} @@ -8083,6 +8144,10 @@ 17262,Ex_Def_Potion_Box,Special Defense Potion Box,18,20,,0,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} 17270,STR_Biscuit_Stick_Box,Bar of Strength Box,18,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 14616,20; },{},{} 17271,VIT_Biscuit_Stick_Box,VIT Biscuit Stick Box,18,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 14617,20; },{},{} +// +17338,Ore_Box_V,Ore Box V,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 7619,5; getitem 7620,5; getitem 14696,1; },{},{} +17339,Ore_Box_V(10),Ore Box V(10),18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 7619,50; getitem 7620,50; getitem 14696,11; },{},{} +//17394,Event_Old_Headgear_Box,Event Old Headgear Box,2,20,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{} // Mechanic/Genetic Cannonballs 18000,Cannon_Ball,Cannon Ball,10,100,,10,100,,,,0x00040400,56,2,32768,,99,,8,{},{},{} 18001,Holy_Cannon_Ball,Holy Cannon Ball,10,200,,10,120,,,,0x00040400,56,2,32768,,99,,8,{ bonus bAtkEle,Ele_Holy; },{},{} @@ -8452,6 +8517,7 @@ 19587,C_King_Poring_Hat,Costume King Poring Hat,5,0,,100,,0,,0,0xFFFFFFFF,63,2,1024,,1,0,905,{ bonus bUnbreakableHelm,0; },{},{} 19589,C_Fallen_Angel_Lost_J,C Fallen Angel Lost J,5,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,907,{},{},{} 19617,C_Puppy_Headband,Costume Puppy Headband,5,0,,0,,,,,0xFFFFFFFF,63,2,1024,,,,199,{},{},{} +19590,C_Maiden's_Twin_Ribbon,Maiden's Twin Ribbon,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,239,{},{},{} 19618,C_Kitsune_Mask,Costume Kitsune Mask,5,0,,0,,,,,0xFFFFFFFF,63,2,1024,,,,153,{},{},{} 19619,C_Corsair,Costume Corsair,5,0,,0,,,,,0xFFFFFFFF,63,2,1024,,0,0,105,{ bonus bVit,1; },{},{} 19620,C_Dectective_Hat,Costume Detective Hat,5,0,,0,,,,,0xFFFFFFFF,63,2,1024,,,,189,{},{},{} @@ -8462,9 +8528,18 @@ 19625,C_Bunny_Band,Costume Bunny Band,5,0,,0,,,,,0xFFFFFFFF,63,2,1024,,,,15,{},{},{} 19650,C_Rainbow_Feather_Deco,Costume Rainbow Feather Deco,5,0,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,1,934,{},{},{} 19655,C_Tiraya_Bonnet,C Tiraya Bonnet,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,398,{},{},{} +19656,C_Wandering_Minstrel_Hat,Wandering Minstrel Hat,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,240,{},{},{} 19707,C_Polar_Bear_Cap,Costume Polar Bear Cap,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,966,{ bonus bUnbreakableHelm,0; },{},{} 19730,C_Snake_Hat,C Snake Hat,5,20,,10,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,986,{},{},{} +19746,C_Executioner_Hood,Executioner Hood,5,20,,0,,0,,0,0xFFFFFFFF,63,2,2048,,0,0,0,{},{},{} 19829,C_Straw_Hat,C Straw Hat,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,146,{},{},{} +19859,C_Flying_Angel,Flying Angel,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,264,{},{},{} +19860,C_School_Criatura_Hat,School Criatura Hat,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,0,{},{},{} +19861,C_Heart_Hairpin,Heart Hairpin,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,126,{},{},{} +19862,C_Succubus_Horn,Succubus Horn,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,150,{},{},{} +19863,C_Incubus_Horn,Incubus Horn,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,156,{},{},{} +19864,C_Dokebi's_Wig,Dokebi's Wig,5,20,,0,,0,,0,0xFFFFFFFF,63,2,3072,,0,0,307,{},{},{} +19865,C_Joker_Jester,Joker Jester,5,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,0,0,89,{},{},{} 20500,T_Archangel_Wing,Archangel Wing,5,0,,0,,0,,0,0xFFFFFFFF,63,2,8192,,1,0,1,{ bonus bUnbreakableHelm,0; },{},{} 20600,Fantastic_Aura,Fantastic Aura,5,0,,0,,0,,0,0xFFFFFFFF,63,2,16384,,1,0,0,{ bonus bUnbreakableHelm,0; },{},{} 20700,Egir_Manteau,Egir Manteau,5,200000,,300,,10,,1,0xFFFFFFFF,63,2,4,,110,1,0,{ bonus bUnbreakableHelm,0; },{},{} @@ -8484,3 +8559,62 @@ 22559,Mock_Strawberry,Mock Strawberry,11,20,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ percentheal 50,50; itemskill "SM_ENDURE",3; },{},{} 22571,Easter_Egg,Easter Egg,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} 22540,Runstone_Luxanima,Lux Anima Rune,11,2,,100,,,,,0xFFFFFFFF,56,2,,,,,,{ itemskill "RK_LUXANIMA",1; },{},{} +//22611,Packed_Envelope,Packed Envelope,11,10,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{} +//22612,Corrupt_Reagents,Corrupt Reagents,11,10,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{} +//22613,Contaminated_Reagents,Contaminated Reagents,11,10,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ /* TODO */ },{},{} + +// Shadow Equip +24018,Shadow_Physical_Earring,Shadow Physical Earring,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bAspdRate,(getrefine()>=7)?2:1; },{},{} +24019,Shadow_Physical_Weapon,Shadow Physical Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus bAtk,10; if(getrefine()>=7) { bonus bAtkRate,1; } },{},{} +24020,Shadow_Physical_Pendant,Shadow Physical Pendant,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bMaxHP,100; if(getrefine()>=7) { bonus bMaxHPrate,1; } },{},{} +24021,Shadow_Magical_Earring,Shadow Magical Earring,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bVariableCastrate,-(getrefine()>=7)?2:1; },{},{} +24022,Shadow_Magical_Weapon,Shadow Magical Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus bMatk,10; if(getrefine()>=7) { bonus bMatkRate,1; } },{},{} +24023,Shadow_Magical_Pendant,Shadow Magical Pendant,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bMaxSP,50; if(getrefine()>=7) { bonus bMaxSPrate,1; } },{},{} +24025,Shadow_Champion_Shoes,Shadow Champion Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus bMaxHP,20; bonus bMaxSP,20; if(getrefine()>=7) { bonus bMaxHP,1; bonus bMaxSP,1; } },{},{} +24026,Shadow_Athena_Shield,Shadow Athena Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus bDef,(getrefine()>=7)?20:10; },{},{} +24027,Immune_Shadow_Armor,Immune Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus2 bSubEle,0,1; },{},{} +24028,Hard_Shadow_Armor,Hard Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus bMaxHP,50; if(getrefine()>=7) { bonus bMaxHPrate,1; } },{},{} +24029,Ancient_Shadow_Armor,Ancient Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus bHit,(getrefine()>=7)?20:10; },{},{} +24030,Critital_Shadow_Armor,Critital Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus bCritical,(getrefine()>=7)?10:5; },{},{} +24031,King_Bird_Shadow_Weapon,King Bird Shadow Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus bAtk,10; if(getrefine()>=7) { bonus bLongAtkRate,1; } },{},{} +24032,Critical_Hit_Shadow_Weapon,Critical Hit Shadow Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus bAtk,10; if(getrefine()>=7) { bonus bCritAtkRate,1; } },{},{} +24034,Lucky_Shadow_Weapon,Lucky Shadow Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus bLuk,1; if(getrefine()>=7) { bonus bLuk,1; } if(getrefine()>=9) { bonus bLuk,1; } },{},{} +24035,Power_Shadow_Earring,Power Shadow Earring,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bStr,1; if(getrefine()>=7) { bonus bStr,1; } if(getrefine()>=9) { bonus bStr,1; } },{},{} +24036,Ect_Shadow_Pendant,Ect Shadow Pendant,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bInt,1; if(getrefine()>=7) { bonus bInt,1; } if(getrefine()>=9) { bonus bInt,1; } },{},{} +24037,Dexter_travelers_Shadow_Armor,Dexter travelers Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus bDex,1; if(getrefine()>=7) { bonus bDex,1; } if(getrefine()>=9) { bonus bDex,1; } },{},{} +24038,Vital_Shadow_Shoes,Vital Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus bVit,1; if(getrefine()>=7) { bonus bVit,1; } if(getrefine()>=9) { bonus bVit,1; } },{},{} +24039,Athletic_Shadow_Shield,Athletic Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus bAgi,1; if(getrefine()>=7) { bonus bAgi,1; } if(getrefine()>=9) { bonus bAgi,1; } },{},{} +24040,Lucky_Shadow_Armor,Lucky Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus bLuk,1; bonus bCritical,(getrefine()/2); },{},{} +24041,Power_Shadow_Pendant,Power Shadow Pendant,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bStr,1; bonus bAtk,getrefine(); },{},{} +24042,Ect_Shadow_Earring,Ect Shadow Earring,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bInt,1; bonus bMatk,getrefine(); },{},{} +24043,Dexter_Travelers_Shadow_Weapon,Dexter Travelers Shadow Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus bDex,1; bonus bHit,getrefine(); },{},{} +24044,Vital_Shadow_Shield,Vital Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus bVit,1; bonus bDef,getrefine(); },{},{} +24045,Athletic_Shadow_Shoes,Athletic Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus bAgi,1; bonus bFlee,getrefine(); },{},{} +24046,Resist_Spell_Power_Shadow_Pendant,Resist Spell Power Shadow Pendant,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bMdef,(getrefine()>=7)?6:3; },{},{} +24051,Athena_Shadow_Earring,Athena Shadow Earring,12,10,,0,,0,,0,0xFFFFFFFF,63,2,3145728,,1,1,0,{ bonus bDef,(getrefine()>=7)?20:10; },{},{} +24052,Cranial_Shadow_Shield,Cranial Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,7,1; if(getrefine()>=7) { bonus2 bSubRace,7,1; } if(getrefine()>=9) { bonus2 bSubRace,7,1; } },{},{} +24053,Safeguard_Shadow_Shield,Safeguard Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,10,1; if(getrefine()>=7) { bonus2 bSubRace,10,1; } if(getrefine()>=9) { bonus2 bSubRace,10,1; } },{},{} +24054,Brutal_Shadow_Shield,Brutal Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,2,1; if(getrefine()>=7) { bonus2 bSubRace,2,1; } if(getrefine()>=9) { bonus2 bSubRace,2,1; } },{},{} +24055,Gargantua_Shadow_Shield,Gargantua Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,4,1; if(getrefine()>=7) { bonus2 bSubRace,4,1; } if(getrefine()>=9) { bonus2 bSubRace,4,1; } },{},{} +24056,Homer's_Shadow_Shield,Homer's Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,5,1; if(getrefine()>=7) { bonus2 bSubRace,5,1; } if(getrefine()>=9) { bonus2 bSubRace,5,1; } },{},{} +24057,Dragoon_Shadow_Shield,Dragoon Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,9,1; if(getrefine()>=7) { bonus2 bSubRace,9,1; } if(getrefine()>=9) { bonus2 bSubRace,9,1; } },{},{} +24058,Satanic_Shadow_Shield,Satanic Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,8,1; if(getrefine()>=7) { bonus2 bSubRace,8,1; } if(getrefine()>=9) { bonus2 bSubRace,8,1; } },{},{} +24059,Fire-Proof_Shadow_Shield,Fire-Proof Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,0,1; if(getrefine()>=7) { bonus2 bSubRace,0,1; } if(getrefine()>=9) { bonus2 bSubRace,0,1; } },{},{} +24060,Requiem_Shadow_Shield,Requiem Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,1,1; if(getrefine()>=7) { bonus2 bSubRace,1,1; } if(getrefine()>=9) { bonus2 bSubRace,1,1; } },{},{} +24061,Cadi_Shadow_Shield,Cadi Shadow Shield,12,10,,0,,0,,0,0xFFFFFFFF,63,2,262144,,1,1,0,{ bonus2 bSubRace,3,1; if(getrefine()>=7) { bonus2 bSubRace,3,1; } if(getrefine()>=9) { bonus2 bSubRace,3,1; } },{},{} +24062,Bloody_Shadow_Shoes,Bloody Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,7,2; bonus2 bMagicAddRace,7,2; if(getrefine()>=7) { bonus2 bAddRace,7,1; bonus2 bMagicAddRace,7,1; } if(getrefine()>=9) { bonus2 bAddRace,7,2; bonus2 bMagicAddRace,7,2; } },{},{} +24063,Liberation_Shadow_Shoes,Liberation Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,10,2; bonus2 bMagicAddRace,10,2; if(getrefine()>=7) { bonus2 bAddRace,10,1; bonus2 bMagicAddRace,10,1; } if(getrefine()>=9) { bonus2 bAddRace,10,2; bonus2 bMagicAddRace,10,2; } },{},{} +24064,Chemical_Shadow_Shoes,Chemical Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,3,2; bonus2 bMagicAddRace,3,2; if(getrefine()>=7) { bonus2 bAddRace,3,1; bonus2 bMagicAddRace,3,1; } if(getrefine()>=9) { bonus2 bAddRace,3,2; bonus2 bMagicAddRace,3,2; } },{},{} +24065,Glamorous_Shadow_Shoes,Glamorous Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,2,2; bonus2 bMagicAddRace,2,2; if(getrefine()>=7) { bonus2 bAddRace,2,1; bonus2 bMagicAddRace,2,1; } if(getrefine()>=9) { bonus2 bAddRace,2,2; bonus2 bMagicAddRace,2,2; } },{},{} +24066,Sekti_Side_Shadow_Shoes,Sekti Side Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,4,2; bonus2 bMagicAddRace,4,2; if(getrefine()>=7) { bonus2 bAddRace,4,1; bonus2 bMagicAddRace,4,1; } if(getrefine()>=9) { bonus2 bAddRace,4,2; bonus2 bMagicAddRace,4,2; } },{},{} +24067,Fisher_Shadow_Shoes,Fisher Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,5,2; bonus2 bMagicAddRace,5,2; if(getrefine()>=7) { bonus2 bAddRace,5,1; bonus2 bMagicAddRace,5,1; } if(getrefine()>=9) { bonus2 bAddRace,5,2; bonus2 bMagicAddRace,5,2; } },{},{} +24068,Seraphim_Shadow_Shoes,Seraphim Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,8,2; bonus2 bMagicAddRace,8,2; if(getrefine()>=7) { bonus2 bAddRace,8,1; bonus2 bMagicAddRace,8,1; } if(getrefine()>=9) { bonus2 bAddRace,8,2; bonus2 bMagicAddRace,8,2; } },{},{} +24069,Beholder_Shadow_Shoes,Beholder Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,0,2; bonus2 bMagicAddRace,0,2; if(getrefine()>=7) { bonus2 bAddRace,0,1; bonus2 bMagicAddRace,0,1; } if(getrefine()>=9) { bonus2 bAddRace,0,2; bonus2 bMagicAddRace,0,2; } },{},{} +24070,Divine_Shadow_Shoes,Divine Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,1,2; bonus2 bMagicAddRace,1,2; if(getrefine()>=7) { bonus2 bAddRace,1,1; bonus2 bMagicAddRace,1,1; } if(getrefine()>=9) { bonus2 bAddRace,1,2; bonus2 bMagicAddRace,1,2; } },{},{} +24071,Dragoons_Shadow_Shoes,Dragoons Shadow Shoes,12,10,,0,,0,,0,0xFFFFFFFF,63,2,524288,,1,1,0,{ bonus2 bAddRace,9,2; bonus2 bMagicAddRace,9,2; if(getrefine()>=7) { bonus2 bAddRace,9,1; bonus2 bMagicAddRace,9,1; } if(getrefine()>=9) { bonus2 bAddRace,9,2; bonus2 bMagicAddRace,9,2; } },{},{} +24072,Large_Shadow_Armor,Large Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus2 bSubSize,2,2; if(getrefine()>=7) { bonus2 bSubSize,2,1; } if(getrefine()>=9) { bonus2 bSubSize,2,2; } },{},{} +24073,Medium_Shadow_Armor,Medium Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus2 bSubSize,1,2; if(getrefine()>=7) { bonus2 bSubSize,1,1; } if(getrefine()>=9) { bonus2 bSubSize,1,2; } },{},{} +24074,Small_Shadow_Armor,Small Shadow Armor,12,10,,0,,0,,0,0xFFFFFFFF,63,2,65536,,1,1,0,{ bonus2 bSubSize,0,2; if(getrefine()>=7) { bonus2 bSubSize,0,1; } if(getrefine()>=9) { bonus2 bSubSize,0,2; } },{},{} +24075,Large_Shadow_Weapon,Large Shadow Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus2 bAddSize,2,2; if(getrefine()>=7) { bonus2 bAddSize,2,1; } if(getrefine()>=9) { bonus2 bAddSize,2,2; } },{},{} +24076,Medium_Shadow_Weapon,Medium Shadow Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus2 bAddSize,1,2; if(getrefine()>=7) { bonus2 bAddSize,1,1; } if(getrefine()>=9) { bonus2 bAddSize,1,2; } },{},{} +24077,Small_Shadow_Weapon,Small Shadow Weapon,12,10,,0,,0,,0,0xFFFFFFFF,63,2,131072,,1,1,0,{ bonus2 bAddSize,0,2; if(getrefine()>=7) { bonus2 bAddSize,0,1; } if(getrefine()>=9) { bonus2 bAddSize,0,2; } },{},{} diff --git a/db/re/item_misc.txt b/db/re/item_misc.txt index 02c637624b..3024977852 100644 --- a/db/re/item_misc.txt +++ b/db/re/item_misc.txt @@ -1214,3 +1214,7 @@ 69,4429,32 // Salamander Card 69,4431,32 // Kasa Card 69,4432,33 // Magmaring Card +// Flamel Card +70,545,1 // Condensed Red Potion +70,546,1 // Condensed Yellow Potion +70,547,1 // Condensed White Potion \ No newline at end of file diff --git a/db/re/item_trade.txt b/db/re/item_trade.txt index 509cbb469e..4024d6ac39 100644 --- a/db/re/item_trade.txt +++ b/db/re/item_trade.txt @@ -1416,6 +1416,7 @@ 14605,475,100 // Orc Lord Scroll 14606,475,100 // JOB Battle Manual 14608,73,100 // Manchu-Han Imperial Feast +14696,475,100 // Sealed Gloom Under Night Gachapon 16002,507,100 // Stunner 16134,475,100 // Frog King Hat Box 16135,457,100 // Satanic Bone Helm Box @@ -2011,8 +2012,11 @@ 12630,475,100 // Teddy Bear Scroll 12778,473,100 // Bapho Jr Scroll 12779,473,100 // Galapago Scroll +17338,457,100 // Ore Box V +17339,457,100 // Ore Box V(10) // Sealed Cards +4485,457,100 // Sealed Gloom Under Night Card 4489,457,100 // Sealed Pharaoh Card 4490,457,100 // Sealed Moonlight Flower Card 4491,457,100 // Sealed Sniper Card @@ -2038,4 +2042,4 @@ 4541,457,100 // Sealed High Wizard Card 4542,457,100 // Sealed Detale Card 4543,457,100 // Sealed Hatii Card -4544,457,100 // Sealed Evil Snake Lord Card +4544,457,100 // Sealed Evil Snake Lord Card \ No newline at end of file diff --git a/doc/item_db.txt b/doc/item_db.txt index a883320072..2609d6f643 100644 --- a/doc/item_db.txt +++ b/doc/item_db.txt @@ -137,6 +137,12 @@ Loc: Equipment's placement. Values are (hexadecimal): 2^12 4096 = Costume Low Headgear 2^13 8192 = Costume Garment/Robe 2^15 32768 = Ammo + 2^16 65536 = Shadow Armor + 2^17 131072 = Shadow Weapon + 2^18 262144 = Shadow Shield + 2^18 524288 = Shadow Shoes + 2^20 1048576 = Shadow Accessory 2 + 2^21 2097152 = Shadow Accessory 1 --------------------------------------- diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 638f914f77..10b2a2c80e 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -2359,6 +2359,13 @@ EQI_COSTUME_HEAD_LOW (11) - Lower Costume Headgear EQI_COSTUME_HEAD_MID (12) - Middle Costume Headgear EQI_COSTUME_HEAD_TOP (13) - Upper Costume Headgear EQI_COSTUME_GARMENT (14) - Costume Garment +EQI_AMMO (15) - Arrow/Ammunition +EQI_SHADOW_ARMOR (16) - Shadow Armor +EQI_SHADOW_WEAPON (17) - Shadow Weapon +EQI_SHADOW_SHIELD (18) - Shadow Shield +EQI_SHADOW_SHOES (19) - Shadow Shoes +EQI_SHADOW_ACC_R (20) - Shadow Accessory 2 +EQI_SHADOW_ACC_L (21) - Shadow Accessory 1 Notice that a few items occupy several equipment slots, and if the character is wearing such an item, 'getequipid' will return its ID number for either slot. diff --git a/sql-files/main.sql b/sql-files/main.sql index f6f87b645b..ffa5bbe508 100644 --- a/sql-files/main.sql +++ b/sql-files/main.sql @@ -48,7 +48,7 @@ CREATE TABLE IF NOT EXISTS `cart_inventory` ( `char_id` int(11) NOT NULL default '0', `nameid` int(11) NOT NULL default '0', `amount` int(11) NOT NULL default '0', - `equip` mediumint(8) unsigned NOT NULL default '0', + `equip` int(11) unsigned NOT NULL default '0', `identify` smallint(6) NOT NULL default '0', `refine` tinyint(3) unsigned NOT NULL default '0', `attribute` tinyint(4) NOT NULL default '0', @@ -346,7 +346,7 @@ CREATE TABLE IF NOT EXISTS `guild_storage` ( `guild_id` int(11) unsigned NOT NULL default '0', `nameid` int(11) unsigned NOT NULL default '0', `amount` int(11) unsigned NOT NULL default '0', - `equip` mediumint(8) unsigned NOT NULL default '0', + `equip` int(11) unsigned NOT NULL default '0', `identify` smallint(6) unsigned NOT NULL default '0', `refine` tinyint(3) unsigned NOT NULL default '0', `attribute` tinyint(4) unsigned NOT NULL default '0', @@ -410,7 +410,7 @@ CREATE TABLE IF NOT EXISTS `inventory` ( `char_id` int(11) unsigned NOT NULL default '0', `nameid` int(11) unsigned NOT NULL default '0', `amount` int(11) unsigned NOT NULL default '0', - `equip` mediumint(8) unsigned NOT NULL default '0', + `equip` int(11) unsigned NOT NULL default '0', `identify` smallint(6) NOT NULL default '0', `refine` tinyint(3) unsigned NOT NULL default '0', `attribute` tinyint(4) unsigned NOT NULL default '0', @@ -674,7 +674,7 @@ CREATE TABLE IF NOT EXISTS `storage` ( `account_id` int(11) unsigned NOT NULL default '0', `nameid` int(11) unsigned NOT NULL default '0', `amount` smallint(11) unsigned NOT NULL default '0', - `equip` mediumint(8) unsigned NOT NULL default '0', + `equip` int(11) unsigned NOT NULL default '0', `identify` smallint(6) unsigned NOT NULL default '0', `refine` tinyint(3) unsigned NOT NULL default '0', `attribute` tinyint(4) unsigned NOT NULL default '0', diff --git a/sql-files/upgrades/upgrade_20131115.sql b/sql-files/upgrades/upgrade_20131115.sql new file mode 100644 index 0000000000..10a80f23a8 --- /dev/null +++ b/sql-files/upgrades/upgrade_20131115.sql @@ -0,0 +1,4 @@ +ALTER TABLE `inventory` MODIFY `equip` int(11) unsigned NOT NULL default '0'; +ALTER TABLE `storage` MODIFY `equip` int(11) unsigned NOT NULL default '0'; +ALTER TABLE `cart_inventory` MODIFY `equip` int(11) unsigned NOT NULL default '0'; +ALTER TABLE `guild_storage` MODIFY `equip` int(11) unsigned NOT NULL default '0'; \ No newline at end of file diff --git a/src/char/char.c b/src/char/char.c index a107d786fa..052a8b26cd 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -808,7 +808,7 @@ int memitemdata_to_sql(const struct item items[], int max, int id, int tableswit SqlStmt_BindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL); - SqlStmt_BindColumn(stmt, 3, SQLDT_USHORT, &item.equip, 0, NULL, NULL); + SqlStmt_BindColumn(stmt, 3, SQLDT_UINT, &item.equip, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 4, SQLDT_CHAR, &item.identify, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 5, SQLDT_CHAR, &item.refine, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, 0, NULL, NULL); @@ -954,7 +954,7 @@ int inventory_to_sql(const struct item items[], int max, int id) { SqlStmt_BindColumn(stmt, 0, SQLDT_INT, &item.id, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 1, SQLDT_SHORT, &item.nameid, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 2, SQLDT_SHORT, &item.amount, 0, NULL, NULL); - SqlStmt_BindColumn(stmt, 3, SQLDT_USHORT, &item.equip, 0, NULL, NULL); + SqlStmt_BindColumn(stmt, 3, SQLDT_UINT, &item.equip, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 4, SQLDT_CHAR, &item.identify, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 5, SQLDT_CHAR, &item.refine, 0, NULL, NULL); SqlStmt_BindColumn(stmt, 6, SQLDT_CHAR, &item.attribute, 0, NULL, NULL); @@ -1312,7 +1312,7 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything || SQL_ERROR == SqlStmt_BindColumn(stmt, 0, SQLDT_INT, &tmp_item.id, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 1, SQLDT_SHORT, &tmp_item.nameid, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 2, SQLDT_SHORT, &tmp_item.amount, 0, NULL, NULL) - || SQL_ERROR == SqlStmt_BindColumn(stmt, 3, SQLDT_USHORT, &tmp_item.equip, 0, NULL, NULL) + || SQL_ERROR == SqlStmt_BindColumn(stmt, 3, SQLDT_UINT, &tmp_item.equip, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 4, SQLDT_CHAR, &tmp_item.identify, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 5, SQLDT_CHAR, &tmp_item.refine, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 6, SQLDT_CHAR, &tmp_item.attribute, 0, NULL, NULL) @@ -1344,7 +1344,7 @@ int mmo_char_fromsql(int char_id, struct mmo_charstatus* p, bool load_everything || SQL_ERROR == SqlStmt_BindColumn(stmt, 0, SQLDT_INT, &tmp_item.id, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 1, SQLDT_SHORT, &tmp_item.nameid, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 2, SQLDT_SHORT, &tmp_item.amount, 0, NULL, NULL) - || SQL_ERROR == SqlStmt_BindColumn(stmt, 3, SQLDT_USHORT, &tmp_item.equip, 0, NULL, NULL) + || SQL_ERROR == SqlStmt_BindColumn(stmt, 3, SQLDT_UINT, &tmp_item.equip, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 4, SQLDT_CHAR, &tmp_item.identify, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 5, SQLDT_CHAR, &tmp_item.refine, 0, NULL, NULL) || SQL_ERROR == SqlStmt_BindColumn(stmt, 6, SQLDT_CHAR, &tmp_item.attribute, 0, NULL, NULL) diff --git a/src/common/mmo.h b/src/common/mmo.h index c5d9160845..92fb062639 100644 --- a/src/common/mmo.h +++ b/src/common/mmo.h @@ -180,6 +180,7 @@ enum item_types { IT_UNKNOWN2,//9 IT_AMMO, //10 IT_DELAYCONSUME,//11 + IT_SHADOWGEAR, //12 IT_CASH = 18, IT_MAX }; @@ -199,7 +200,7 @@ struct item { int id; short nameid; short amount; - unsigned short equip; // location(s) where item is equipped (using enum equip_pos for bitmasking) + unsigned int equip; // location(s) where item is equipped (using enum equip_pos for bitmasking) char identify; char refine; char attribute; diff --git a/src/map/clif.c b/src/map/clif.c index 12510e69a9..00f86582c4 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -14524,7 +14524,7 @@ void clif_parse_Auction_setitem(int fd, struct map_session_data *sd){ return; } - if( (item = itemdb_exists(sd->status.inventory[idx].nameid)) != NULL && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC) ) + if( (item = itemdb_exists(sd->status.inventory[idx].nameid)) != NULL && !(item->type == IT_ARMOR || item->type == IT_PETARMOR || item->type == IT_WEAPON || item->type == IT_CARD || item->type == IT_ETC || item->type == IT_SHADOWGEAR) ) { // Consumable or pets are not allowed clif_Auction_setitem(sd->fd, idx, true); return; diff --git a/src/map/itemdb.c b/src/map/itemdb.c index 71da5dc208..e56327ecfc 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -198,6 +198,7 @@ const char* itemdb_typename(int type) case IT_PETARMOR: return "Pet Accessory"; case IT_AMMO: return "Arrow/Ammunition"; case IT_DELAYCONSUME: return "Delay-Consume Usable"; + case IT_SHADOWGEAR: return "Shadow Equipment"; case IT_CASH: return "Cash Usable"; } return "Unknown Type"; @@ -352,6 +353,7 @@ int itemdb_isequip(int nameid) case IT_WEAPON: case IT_ARMOR: case IT_AMMO: + case IT_SHADOWGEAR: return 1; default: return 0; @@ -368,6 +370,7 @@ int itemdb_isequip2(struct item_data *data) case IT_WEAPON: case IT_ARMOR: case IT_AMMO: + case IT_SHADOWGEAR: return 1; default: return 0; @@ -385,6 +388,7 @@ int itemdb_isstackable(int nameid) case IT_ARMOR: case IT_PETEGG: case IT_PETARMOR: + case IT_SHADOWGEAR: return 0; default: return 1; @@ -402,6 +406,7 @@ int itemdb_isstackable2(struct item_data *data) case IT_ARMOR: case IT_PETEGG: case IT_PETARMOR: + case IT_SHADOWGEAR: return 0; default: return 1; @@ -477,6 +482,7 @@ int itemdb_isidentified(int nameid) case IT_WEAPON: case IT_ARMOR: case IT_PETARMOR: + case IT_SHADOWGEAR: return 0; default: return 1; @@ -1006,7 +1012,7 @@ static bool itemdb_parse_dbrow(char** str, const char* source, int line, int scr id->type = atoi(str[3]); - if( id->type < 0 || id->type == IT_UNKNOWN || id->type == IT_UNKNOWN2 || ( id->type > IT_DELAYCONSUME && id->type < IT_CASH ) || id->type >= IT_MAX ) + if( id->type < 0 || id->type == IT_UNKNOWN || id->type == IT_UNKNOWN2 || ( id->type > IT_SHADOWGEAR && id->type < IT_CASH ) || id->type >= IT_MAX ) {// catch invalid item types ShowWarning("itemdb_parse_dbrow: Invalid item type %d for item %d. IT_ETC will be used.\n", id->type, nameid); id->type = IT_ETC; diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 39211fcb47..6e33c4f032 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -87,7 +87,7 @@ enum e_item_job { #define IG_FINDINGORE 6 #define IG_POTION 37 //The max. item group count (increase this when needed). -#define MAX_ITEMGROUP 70 +#define MAX_ITEMGROUP 71 #define CARD0_FORGE 0x00FF #define CARD0_CREATE 0x00FE diff --git a/src/map/pc.c b/src/map/pc.c index 9a85c510ec..28bb9e0f02 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -68,7 +68,7 @@ struct fame_list smith_fame_list[MAX_FAME_LIST]; struct fame_list chemist_fame_list[MAX_FAME_LIST]; struct fame_list taekwon_fame_list[MAX_FAME_LIST]; -static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT,EQP_AMMO}; +static unsigned int equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_GARMENT,EQP_AMMO,EQP_SHADOW_ARMOR,EQP_SHADOW_WEAPON,EQP_SHADOW_SHIELD,EQP_SHADOW_SHOES,EQP_SHADOW_ACC_R,EQP_SHADOW_ACC_L}; #define MOTD_LINE_SIZE 128 static char motd_text[MOTD_LINE_SIZE][CHAT_SIZE_MAX]; // Message of the day buffer [Valaris] @@ -8679,6 +8679,12 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos) pos = sd->equip_index[EQI_ACC_R] >= 0 ? EQP_ACC_L : EQP_ACC_R; } + if(pos == EQP_SHADOW_ACC) { // Shadow System + pos = req_pos&EQP_SHADOW_ACC; + if (pos == EQP_SHADOW_ACC) + pos = sd->equip_index[EQI_SHADOW_ACC_L] >= 0 ? EQP_SHADOW_ACC_R : EQP_SHADOW_ACC_L; + } + if(pos == EQP_ARMS && id->equip == EQP_HAND_R) { //Dual wield capable weapon. pos = (req_pos&EQP_ARMS); if (pos == EQP_ARMS) //User specified both slots, pick one for them. diff --git a/src/map/pc.h b/src/map/pc.h index ecc9dc0625..bc0b6ba6a0 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -50,6 +50,12 @@ enum equip_index { EQI_COSTUME_LOW, EQI_COSTUME_GARMENT, EQI_AMMO, + EQI_SHADOW_ARMOR, + EQI_SHADOW_WEAPON, + EQI_SHADOW_SHIELD, + EQI_SHADOW_SHOES, + EQI_SHADOW_ACC_R, + EQI_SHADOW_ACC_L, EQI_MAX }; @@ -219,7 +225,7 @@ struct map_session_data { struct registry save_reg; struct item_data* inventory_data[MAX_INVENTORY]; // direct pointers to itemdb entries (faster than doing item_id lookups) - short equip_index[EQI_MAX]; + int equip_index[EQI_MAX]; unsigned int weight,max_weight; int cart_weight,cart_num,cart_weight_max; int fd; @@ -613,28 +619,28 @@ enum ammo_type { //Equip position constants enum equip_pos { - EQP_HEAD_LOW = 0x0001, - EQP_HEAD_MID = 0x0200, //512 - EQP_HEAD_TOP = 0x0100, //256 - EQP_HAND_R = 0x0002, //2 - EQP_HAND_L = 0x0020, //32 - EQP_ARMOR = 0x0010, //16 - EQP_SHOES = 0x0040, //64 - EQP_GARMENT = 0x0004, //4 - EQP_ACC_L = 0x0008, //8 - EQP_ACC_R = 0x0080, //128 - EQP_COSTUME_HEAD_TOP = 0x0400, //1024 - EQP_COSTUME_HEAD_MID = 0x0800, //2048 - EQP_COSTUME_HEAD_LOW = 0x1000, //4096 - EQP_COSTUME_GARMENT = 0x2000, //8192 - EQP_AMMO = 0x8000, //32768 - //EQP_COSTUME_FLOOR = 0x4000, - //EQP_SHADOW_ARMOR = 0x10000,//Shadow equip slots will be left disabled until client's supporting them are usable. [Rytech] - //EQP_SHADOW_WEAPON = 0x20000, - //EQP_SHADOW_SHIELD = 0x40000, - //EQP_SHADOW_SHOES = 0x80000, - //EQP_SHADOW_ACC_R = 0x100000, - //EQP_SHADOW_ACC_L = 0x200000, + EQP_HEAD_LOW = 0x000001, + EQP_HEAD_MID = 0x000200, // 512 + EQP_HEAD_TOP = 0x000100, // 256 + EQP_HAND_R = 0x000002, // 2 + EQP_HAND_L = 0x000020, // 32 + EQP_ARMOR = 0x000010, // 16 + EQP_SHOES = 0x000040, // 64 + EQP_GARMENT = 0x000004, // 4 + EQP_ACC_L = 0x000008, // 8 + EQP_ACC_R = 0x000080, // 128 + EQP_COSTUME_HEAD_TOP = 0x000400, // 1024 + EQP_COSTUME_HEAD_MID = 0x000800, // 2048 + EQP_COSTUME_HEAD_LOW = 0x001000, // 4096 + EQP_COSTUME_GARMENT = 0x002000, // 8192 + //EQP_COSTUME_FLOOR = 0x004000, // 16384 + EQP_AMMO = 0x008000, // 32768 + EQP_SHADOW_ARMOR = 0x010000, // 65536 + EQP_SHADOW_WEAPON = 0x020000, // 131072 + EQP_SHADOW_SHIELD = 0x040000, // 262144 + EQP_SHADOW_SHOES = 0x080000, // 524288 + EQP_SHADOW_ACC_R = 0x100000, // 1048576 + EQP_SHADOW_ACC_L = 0x200000, // 2097152 }; struct { @@ -660,6 +666,7 @@ struct { #define EQP_ACC (EQP_ACC_L|EQP_ACC_R) #define EQP_COSTUME (EQP_COSTUME_HEAD_TOP|EQP_COSTUME_HEAD_MID|EQP_COSTUME_HEAD_LOW|EQP_COSTUME_GARMENT) //#define EQP_SHADOW_GEAR (EQP_SHADOW_ARMOR|EQP_SHADOW_WEAPON|EQP_SHADOW_SHIELD|EQP_SHADOW_SHOES|EQP_SHADOW_ACC_R|EQP_SHADOW_ACC_L) +#define EQP_SHADOW_ACC (EQP_SHADOW_ACC_R|EQP_SHADOW_ACC_L) /// Equip positions that use a visible sprite #if PACKETVER < 20110111 diff --git a/src/map/script.c b/src/map/script.c index ace7c9c6a7..f05dda5325 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -6456,7 +6456,7 @@ BUILDIN_FUNC(getitem2) item_data=itemdb_exists(nameid); if (item_data == NULL) return -1; - if(item_data->type==IT_WEAPON || item_data->type==IT_ARMOR){ + if(item_data->type==IT_WEAPON || item_data->type==IT_ARMOR || item_data->type==IT_SHADOWGEAR ) { if(ref > MAX_REFINE) ref = MAX_REFINE; } else if(item_data->type==IT_PETEGG) { @@ -6471,7 +6471,7 @@ BUILDIN_FUNC(getitem2) item_tmp.nameid=nameid; if(!flag) item_tmp.identify=iden; - else if(item_data->type==IT_WEAPON || item_data->type==IT_ARMOR) + else if(item_data->type==IT_WEAPON || item_data->type==IT_ARMOR || item_data->type==IT_SHADOWGEAR ) item_tmp.identify=0; item_tmp.refine=ref; item_tmp.attribute=attr; @@ -7378,7 +7378,7 @@ BUILDIN_FUNC(strnpcinfo) // aegis->athena slot position conversion table -static unsigned int equip[] = {EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_GARMENT,EQP_SHOES,EQP_ACC_L,EQP_ACC_R,EQP_HEAD_MID,EQP_HEAD_LOW,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_GARMENT}; +static unsigned int equip[] = {EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_GARMENT,EQP_SHOES,EQP_ACC_L,EQP_ACC_R,EQP_HEAD_MID,EQP_HEAD_LOW,EQP_COSTUME_HEAD_LOW,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_GARMENT,EQP_AMMO,EQP_SHADOW_ARMOR,EQP_SHADOW_WEAPON,EQP_SHADOW_SHIELD,EQP_SHADOW_SHOES,EQP_SHADOW_ACC_R,EQP_SHADOW_ACC_L}; /*========================================== * GetEquipID(Pos); Pos: 1-14 diff --git a/src/map/status.c b/src/map/status.c index d3cfc559c4..13832dafae 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2682,6 +2682,11 @@ int status_calc_pc_(struct map_session_data* sd, bool first) return 1; } } + else if( sd->inventory_data[index]->type == IT_SHADOWGEAR ) { // Shadow System + run_script(sd->inventory_data[index]->script,0,sd->bl.id,0); + if( !calculating ) + return 1; + } } if(sd->equip_index[EQI_AMMO] >= 0) {