From 58a7f36c92edc937ac63b94e802cf73fb8e6f0df Mon Sep 17 00:00:00 2001 From: idk-whoami <60462533+idk-whoami@users.noreply.github.com> Date: Mon, 12 Sep 2022 19:29:08 +0700 Subject: [PATCH] Corrected script for some item #10 (#7177) * Corrected script for some item #10 * add some items JRO costume Thanks to @Atemo --- db/re/item_combos.yml | 120 +++++++ db/re/item_db_equip.yml | 468 ++++++++++++++++++++++++-- db/re/item_db_etc.yml | 13 + db/re/item_db_usable.yml | 227 +++++++++---- db/re/item_group_db.yml | 126 ++++++- db/re/status.yml | 254 +++++++++++++- npc/re/merchants/malangdo_costume.txt | 6 +- src/map/itemdb.hpp | 9 +- src/map/pc.cpp | 2 + src/map/script_constants.hpp | 32 +- src/map/skill.cpp | 16 + src/map/status.cpp | 178 +++++++++- src/map/status.hpp | 26 +- 13 files changed, 1339 insertions(+), 138 deletions(-) diff --git a/db/re/item_combos.yml b/db/re/item_combos.yml index 6faa6cde97..40765d7318 100644 --- a/db/re/item_combos.yml +++ b/db/re/item_combos.yml @@ -27737,3 +27737,123 @@ Body: Script: | bonus bSMatk,2; bonus bMatkRate,10; + - Combos: + - Combo: + - aegis_28973 # 28973 + - Dark_Blindfold # 5104 + - Combo: + - aegis_28973 # 28973 + - Dark_Blindfold # 18609 + Script: | + bonus bVariableCastrate,-5; + bonus2 bMagicAddRace,RC_All,5; + - Combos: + - Combo: + - Magical_Cloth # 450132 + - Real_Ceila_Card # 4692 + Script: | + bonus bMatkRate,5; + bonus2 bIgnoreMdefRaceRate,RC_All,50; + - Combos: + - Combo: + - aegis_311460 # 311460 + - Staremperor_Robe # 29658 + Script: | + bonus2 bSkillAtk,"SJ_NEWMOONKICK",15; + - Combos: + - Combo: + - aegis_311461 # 311461 + - Staremperor_Robe # 29658 + Script: | + bonus2 bSkillAtk,"SJ_SOLARBURST",15; + - Combos: + - Combo: + - aegis_311462 # 311462 + - Staremperor_Robe # 29658 + Script: | + bonus2 bSPDrainRate,2,1; + - Combos: + - Combo: + - aegis_311463 # 311463 + - Rebellion_Robe # 29667 + Script: | + bonus2 bSkillAtk,"RL_BANISHING_BUSTER",15; + - Combos: + - Combo: + - aegis_311464 # 311464 + - Rebellion_Robe # 29667 + Script: | + bonus2 bSkillAtk,"RL_R_TRIP",15; + - Combos: + - Combo: + - aegis_311465 # 311465 + - Rebellion_Robe # 29667 + Script: | + bonus bFixedCast,-500; + - Combos: + - Combo: + - aegis_311466 # 311466 + - Soulreaper_Robe # 29654 + Script: | + bonus2 bSkillUseSP,"SP_SPA",15; + - Combos: + - Combo: + - aegis_311467 # 311467 + - Soulreaper_Robe # 29654 + Script: | + bonus2 bSkillAtk,"SP_SWHOO",15; + - Combos: + - Combo: + - aegis_311468 # 311468 + - Soulreaper_Robe # 29654 + Script: | + bonus bFixedCast,-500; + - Combos: + - Combo: + - aegis_311469 # 311469 + - Melee_Top # 310327 + - Combo: + - aegis_311469 # 311469 + - Melee_Middle # 310328 + - Combo: + - aegis_311469 # 311469 + - Melee_Bottom # 310329 + Script: | + bonus bPAtk,1; + bonus bPow,1; + - Combos: + - Combo: + - aegis_311469 # 311469 + - aegis_311471 # 311471 + Script: | + bonus bPAtk,5; + bonus bPow,3; + - Combos: + - Combo: + - aegis_311470 # 311470 + - Range_Top # 310325 + - Combo: + - aegis_311470 # 311470 + - Range_Middle # 310330 + - Combo: + - aegis_311470 # 311470 + - Range_Bottom # 310326 + Script: | + bonus bPAtk,1; + bonus bCon,1; + - Combos: + - Combo: + - aegis_311470 # 311470 + - Con_Robe_D # 311355 + Script: | + bonus bPAtk,5; + bonus bCon,3; + - Combos: + - Combo: + - 2020RTC_Imp_TW # 400082 + - 2021RTC_Headset_TW # 400164 + Script: | + .@r = getequiprefinerycnt(EQI_HEAD_TOP); + bonus2 bSubRace,RC_Player_Human,1+2*(.@r/3); + bonus2 bSubRace,RC_Player_Doram,1+2*(.@r/3); + bonus bDelayrate,-1-.@r/3; diff --git a/db/re/item_db_equip.yml b/db/re/item_db_equip.yml index c398a448f1..5f44593685 100644 --- a/db/re/item_db_equip.yml +++ b/db/re/item_db_equip.yml @@ -12472,8 +12472,8 @@ Body: bonus bHealPower,200; bonus2 bAddClass,Class_All,100; skill "WZ_STORMGUST",10; - Skill "WZ_METEOR",10; - Skill "WZ_VERMILION",10; + skill "WZ_METEOR",10; + skill "WZ_VERMILION",10; skill "GM_SANDMAN",1; bonus bVariableCastrate,-100; bonus bFixedCastrate,-100; @@ -23845,7 +23845,6 @@ Body: Type: Armor Buy: 10 Weight: 200 - MagicAttack: 5 Defense: 50 Slots: 1 Jobs: @@ -79704,7 +79703,6 @@ Body: Type: Armor Buy: 10 Weight: 200 - MagicAttack: 20 Slots: 1 Locations: Head_Top: true @@ -98192,7 +98190,6 @@ Body: Type: Armor Buy: 10 Weight: 100 - MagicAttack: 10 Slots: 1 Locations: Garment: true @@ -98201,6 +98198,7 @@ Body: Refineable: true View: 7 Script: | + bonus bMatk,10; bonus bInt,1; bonus bDex,1; - Id: 20726 @@ -106318,7 +106316,6 @@ Body: AegisName: S_Healing_Weapon Name: Healing Shadow Weapon Type: Shadowgear - MagicAttack: 10 Locations: Shadow_Weapon: true EquipLevelMin: 1 @@ -115217,7 +115214,6 @@ Body: AegisName: S_Booster_Earing Name: Booster Shadow Earring Type: ShadowGear - MagicAttack: 15 Locations: Shadow_Right_Accessory: true EquipLevelMin: 100 @@ -115230,6 +115226,7 @@ Body: NoMail: true NoAuction: true Script: | + bonus bMatk,15; bonus bMaxHP,100; - Id: 24588 AegisName: S_Booster_Pandent @@ -117544,7 +117541,6 @@ Body: AegisName: S_AutoSpell_Shield Name: Auto Spell Shadow Shield Type: ShadowGear - MagicAttack: 15 Locations: Shadow_Shield: true Refineable: true @@ -128201,6 +128197,22 @@ Body: if (readparam(bLuk)>=90) bonus bCritAtkRate,5; } + - Id: 28948 + AegisName: Doram_Shield + Name: Doram Shield + Type: Armor + Buy: 20 + Weight: 100 + Defense: 120 + Locations: + Left_Hand: true + ArmorLevel: 1 + EquipLevelMin: 1 + Refineable: true + View: 1 + Script: | + bonus bMdef,5; + bonus2 bSubSize,Size_All,(getrefine() >= 8 ? 25 : 15); - Id: 28950 AegisName: Variant_Shield Name: Abyss Shield @@ -128359,6 +128371,28 @@ Body: bonus2 bSubEle,Ele_Wind,20; bonus2 bSubEle,Ele_Holy,20+(getskilllv("CR_TRUST")*2); bonus2 bSubEle,Ele_Ghost,20; + - Id: 28973 + AegisName: aegis_28973 + Name: Themis Balance + Type: Armor + Weight: 300 + Defense: 90 + Slots: 1 + Locations: + Left_Hand: true + ArmorLevel: 1 + EquipLevelMin: 100 + Refineable: true + View: 1 + Script: | + .@r = getrefine(); + bonus bMdef,10; + bonus bVariableCastrate,-5; + bonus2 bSkillAtk,"LG_RAYOFGENESIS",BaseLevel/5; + if (.@r>=9) + bonus2 bMagicAtkEle,Ele_Holy,3*(getskilllv("AL_HEAL")/2); + if (.@r>=11) + bonus2 bSkillCooldown,"LG_RAYOFGENESIS",-1000; - Id: 31027 AegisName: C_Pretty_Bear Name: Costume Pretty Bear @@ -139263,6 +139297,51 @@ Body: NoGuildStorage: true NoMail: true NoAuction: true + - Id: 400077 + AegisName: Cat_Shampoo_Hat + Name: Splish-splash Nyanpoo Hat + Type: Armor + View: 507 + Weight: 1000 + Buy: 20 + Defense: 18 + Locations: + Head_Top: true + ArmorLevel: 1 + EquipLevelMin: 100 + Refineable: true + Script: | + bonus bUnbreakableHelm; + .@r = getrefine(); + bonus bMdef,15; + bonus bMaxHPrate,20; + bonus bMaxSPrate,20; + if (getskilllv("SU_SPIRITOFSEA") >= 1) + skill "AL_PNEUMA",1; + if (getskilllv("SU_SHRIMPARTY") >= 5) { + bonus bMaxHPrate,30; + bonus bMaxSPrate,30; + } + if (getskilllv("SU_GROOMING") >= 5) { + bonus2 bResEff,Eff_Confusion,10000; + bonus2 bResEff,Eff_Silence,10000; + } + bonus bHealPower2,20*getskilllv("SU_PURRING"); + bonus bDef,50*.@r; + if (.@r >= 7) { + bonus bDelayrate,-10; + bonus2 bVariableCastrate,"SU_STOOP",-50; + bonus2 bVariableCastrate,"SU_LOPE",-50; + bonus2 bSubClass,Class_Boss,10; + } + if (.@r >= 9) { + bonus bDelayrate,-10; + bonus2 bVariableCastrate,"SU_STOOP",-50; + bonus2 bVariableCastrate,"SU_LOPE",-50; + bonus2 bSubClass,Class_Boss,10; + } + if (.@r >= 10) + autobonus3 "{ bonus bFlee2,100; }",1000,3000,"SU_TUNAPARTY"; - Id: 400078 AegisName: BioWeapon_Helm_RK Name: Goral Crown @@ -139331,6 +139410,49 @@ Body: bonus2 bAddSize,Size_All,10; bonus2 bMagicAddSize,Size_All,10; } + - Id: 400080 + AegisName: C_Kriemhild_Crown_TW + Name: Costume Kriemhild Crown # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 1056 + - Id: 400081 + AegisName: C_2020RTC_Imp_TW + Name: Costume 2020RTC Naughty Ghost # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 2009 + - Id: 400082 + AegisName: 2020RTC_Imp_TW + Name: 2020RTC Naughty Ghost # !todo check english name + Type: Armor + View: 2009 + Weight: 100 + Slots: 1 + Locations: + Head_Top: true + ArmorLevel: 1 + EquipLevelMin: 100 + Refineable: true + Script: | + .@r = getrefine(); + bonus2 bSubRace,RC_DemiHuman,10; + bonus2 bSubRace,RC_Player_Human,10; + bonus2 bSubRace,RC_Player_Doram,10; + bonus2 bAddEffWhenHit,Eff_Freeze,100; + if (.@r>=9) { + bonus bFixedCast,-100*.@r; + bonus bAtkRate,2*.@r; + bonus bMatkRate,2*.@r; + bonus bLongAtkRate,2*.@r; + bonus bHealPower2,3*.@r; + bonus bCritAtkRate,5*.@r; + bonus bCritical,3*.@r; + } - Id: 400094 AegisName: BioWeapon_Helm_WL Name: Jade Crown @@ -139863,6 +139985,14 @@ Body: bonus bPow,2; } } + - Id: 400136 + AegisName: C_Ancient_Gold_Deco_TW + Name: Costume Ancient Gold Deco # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 739 - Id: 400137 AegisName: 1Para_Cap_A Name: Paradise Cap @@ -140388,6 +140518,30 @@ Body: } autobonus "{ bonus bAtkEle,Ele_Fire; }",1,60000,BF_WEAPON; autobonus "{ bonus2 bMagicAtkEle,Ele_Fire,20; }",1,60000,BF_MAGIC; + - Id: 400157 + AegisName: C_Astrologer_T_Hat + Name: Costume Astrologer T Hat # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 2125 + - Id: 400158 + AegisName: C_Demon_Crown + Name: Costume Demon Crown + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 2135 + - Id: 400159 + AegisName: C_Bridal_Heir_Band_TW + Name: Costume Bridal Heir Band # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 167 - Id: 400160 AegisName: Wave_Noodle Name: Costume Wavy Noodles @@ -140396,6 +140550,22 @@ Body: Costume_Head_Top: true ArmorLevel: 1 View: 2138 + - Id: 400161 + AegisName: C_Hat_0f_King + Name: Costume Hat 0f King # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 374 + - Id: 400162 + AegisName: C_Red_Navy_Hat + Name: Costume Red Navy Hat # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 651 - Id: 400163 AegisName: C_Whale_Cap Name: Costume Whale Cap @@ -140404,6 +140574,28 @@ Body: Costume_Head_Top: true ArmorLevel: 1 View: 2140 + - Id: 400164 + AegisName: 2021RTC_Headset_TW + Name: 2021RTC Headset # !todo check english name + Type: Armor + Weight: 100 + Locations: + Head_Mid: true + ArmorLevel: 1 + View: 2134 + Script: | + bonus bFixedCast,-100; + bonus bShortAtkRate,1; + bonus bLongAtkRate,1; + bonus2 bMagicAddEle,Ele_All,1; + - Id: 400165 + AegisName: C_Green_Apple_Hat_J + Name: Costume Green Apple Hat # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 821 - Id: 400166 AegisName: C_Egir_Helm Name: Costume Aegir Helm # !todo check english name @@ -140412,6 +140604,62 @@ Body: Costume_Head_Top: true ArmorLevel: 1 View: 870 + - Id: 400167 + AegisName: C_Mosquito_Coil + Name: Costume Mosquito Coil # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 563 + - Id: 400168 + AegisName: C_Souvenirs_Of_Izlude + Name: Costume Souvenirs Of Izlude # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 1377 + - Id: 400169 + AegisName: C_Fish_Pin + Name: Costume Fish Pin # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 669 + - Id: 400170 + AegisName: C_Jaty_C + Name: Costume Jaty # !todo check english name + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 686 + - Id: 400171 + AegisName: C_Angel_feather + Name: Costume Angel feather # !todo check english name + Type: Armor + Locations: + Costume_Garment: true + ArmorLevel: 1 + View: 18 + - Id: 400172 + AegisName: C_Ati_Atihan_Hat_V + Name: Costume Atihan Hat + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 303 + - Id: 400173 + AegisName: C_Fancy_Phantom_Mask_V + Name: Costume Fancy Phantom Mask (Middle) + Type: Armor + Locations: + Costume_Head_Mid: true + ArmorLevel: 1 + View: 710 - Id: 400174 AegisName: C_Weissbier_Hat Name: Costume Buyers Hat @@ -140420,6 +140668,14 @@ Body: Costume_Head_Top: true ArmorLevel: 1 View: 1079 + - Id: 400175 + AegisName: C_Campfire_Hat + Name: Costume Camp Fire Cap + Type: Armor + Locations: + Costume_Head_Top: true + ArmorLevel: 1 + View: 416 - Id: 400176 AegisName: C_Fishbowl_Parfait_Hat Name: Costume Fishbowl Parfait Hat @@ -142040,7 +142296,7 @@ Body: bonus bCon,2; bonus bVariableCastrate,-10; bonus2 bMagicAddRace,RC_Undead,10; - autobonus "{ .@r = getrefine(); bonus bMatk,35*.@r; if (.@r>=10) { bonus bSmatk,20; }",1,7000,BF_MAGIC; + autobonus "{ .@r = getrefine(); bonus bMatk,35*.@r; if (.@r>=10) { bonus bSmatk,20; } }",1,7000,BF_MAGIC; if (.@r>=7) { bonus2 bMagicAtkEle,Ele_All,15; if (.@r>=9) { @@ -142368,6 +142624,14 @@ Body: Locations: Costume_Head_Mid: true ArmorLevel: 1 + - Id: 410011 + AegisName: C_Dark_Blindfold + Name: Costume Dark Blinkers + Type: Armor + View: 187 + Locations: + Costume_Head_Mid: true + ArmorLevel: 1 - Id: 410012 AegisName: EXP_Processor Name: EXP Advisor @@ -142764,6 +143028,14 @@ Body: hateffect HAT_EF_C_Released_Ground,true; UnEquipScript: | hateffect HAT_EF_C_Released_Ground,false; + - Id: 410086 + AegisName: C_Melon_Headphone_J + Name: Costume Melon Headphone # !todo check english name + Type: Armor + Locations: + Costume_Head_Mid: true + ArmorLevel: 1 + View: 2129 - Id: 410087 AegisName: C_Demons_Familiar_K Name: Costume Robotic Watcher @@ -143160,6 +143432,32 @@ Body: Script: | bonus2 bMagicAtkEle,Ele_All,5; bonus5 bAutoSpell,"MG_SOULSTRIKE",10,100,BF_SHORT|BF_WEAPON,1; + - Id: 420004 + AegisName: Nine_Tail_Fox_Hair + Name: Nine Tail Fox Hair + Type: Armor + View: 1884 + Weight: 300 + Locations: + Head_Low: true + ArmorLevel: 1 + EquipLevelMin: 130 + Script: | + bonus2 bAddRace,RC_Demon,20; + bonus2 bMagicAddRace,RC_Demon,20; + bonus2 bResEff,Eff_Blind,10000; + - Id: 420005 + AegisName: Love_Feeling_TW + Name: Feeling of Love + Type: Armor + View: 1717 + Weight: 300 + Locations: + Head_Low: true + ArmorLevel: 1 + EquipLevelMin: 1 + Script: | + autobonus "{ bonus2 bHPRegenRate,400,1000; bonus2 bSPRegenRate,80,1000; }",10,10000,BF_MAGIC; - Id: 420006 AegisName: aegis_420006 Name: Collar of Slavery @@ -143274,6 +143572,30 @@ Body: Costume_Head_Low: true ArmorLevel: 1 View: 1403 + - Id: 420027 + AegisName: C_Fishbone_Hair + Name: Costume Fishbone Hair + Type: Armor + Locations: + Costume_Head_Low: true + ArmorLevel: 1 + View: 2139 + - Id: 420028 + AegisName: Imperial_Glory + Name: Imperial Glory + Type: Armor + View: 2056 + Buy: 20 + Weight: 300 + Defense: 70 + Locations: + Head_Low: true + ArmorLevel: 1 + EquipLevelMin: 70 + Script: | + .@a = (readparam(bAgi)+readparam(bVit))/50; + bonus bMdef,4*.@a; + bonus bDelayrate,-3*.@a; - Id: 420029 AegisName: C_Imperial_Glory Name: "Costume: Imperial Glory" @@ -143556,6 +143878,14 @@ Body: NoGuildStorage: true NoMail: true NoAuction: true + - Id: 420075 + AegisName: C_Floating_Gioia_J + Name: Costume Floating Gioia # !todo check english name + Type: Armor + Locations: + Costume_Head_Low: true + ArmorLevel: 1 + View: 1730 - Id: 420076 AegisName: Vassalage_Necklace Name: Bondage Necklace @@ -147881,7 +148211,6 @@ Body: Name: Automatic Armor Type B Type: Armor Weight: 1000 - MagicAttack: 125 Defense: 135 Slots: 1 Locations: @@ -147891,7 +148220,7 @@ Body: Refineable: true Script: | .@r = getrefine(); - bonus bMatk,10*(.@r/2); + bonus bMatk,125+(10*(.@r/2)); if (.@r>=7) { bonus bVariableCastrate,-15; } @@ -147921,6 +148250,46 @@ Body: bonus bMaxHPrate,5; if (.@r>=11) bonus bVariableCastrate,-8; + - Id: 450132 + AegisName: Magical_Cloth + Name: Magical Cloth + Type: Armor + Buy: 200000 + Weight: 100 + Defense: 45 + Slots: 1 + Locations: + Armor: true + ArmorLevel: 1 + EquipLevelMin: 100 + Refineable: true + Script: | + .@r = getrefine(); + bonus2 bMagicAtkEle,Ele_Earth,5; + bonus2 bMagicAtkEle,Ele_Water,5; + bonus2 bMagicAtkEle,Ele_Wind,5; + bonus2 bMagicAtkEle,Ele_Fire,5; + if (.@r>=7) { + bonus bAspdRate,10; + bonus2 bMagicAtkEle,Ele_Earth,2; + bonus2 bMagicAtkEle,Ele_Water,2; + bonus2 bMagicAtkEle,Ele_Wind,2; + bonus2 bMagicAtkEle,Ele_Fire,2; + } + if (.@r>=8) { + bonus bUnbreakableArmor; + bonus2 bMagicAtkEle,Ele_Earth,3; + bonus2 bMagicAtkEle,Ele_Water,3; + bonus2 bMagicAtkEle,Ele_Wind,3; + bonus2 bMagicAtkEle,Ele_Fire,3; + } + if (.@r>=9) { + bonus2 bMagicAtkEle,Ele_Earth,5; + bonus2 bMagicAtkEle,Ele_Water,5; + bonus2 bMagicAtkEle,Ele_Wind,5; + bonus2 bMagicAtkEle,Ele_Fire,5; + autobonus "{ bonus2 bSkillAtk,\"MG_FIREBOLT\",100; bonus2 bSkillAtk,\"MG_COLDBOLT\",100; bonus2 bSkillAtk,\"MG_LIGHTNINGBOLT\",100; bonus2 bSkillAtk,\"WZ_EARTHSPIKE\",100; }",2000,10000; + } - Id: 450142 AegisName: Orc_Load_Mail Name: Orc Lord Armor @@ -148234,7 +148603,6 @@ Body: Name: Faint Star's Robe Type: Armor Weight: 500 - MagicAttack: 125 Defense: 105 Slots: 1 Locations: @@ -148244,7 +148612,7 @@ Body: Refineable: true Script: | .@r = getrefine(); - bonus bMatk,15*(.@r/2); + bonus bMatk,125+(15*(.@r/2)); if (.@r>=9) { bonus bVariableCastrate,-10; if (.@r>=11) { @@ -148502,7 +148870,6 @@ Body: Name: Nebula Robe of Spell Type: Armor Weight: 500 - MagicAttack: 125 Defense: 105 Slots: 1 Locations: @@ -148522,7 +148889,7 @@ Body: .@g = getenchantgrade(); .@r = getrefine(); bonus bSpl,1; - bonus bMatk,15*(.@r/2); + bonus bMatk,125+(15*(.@r/2)); if (.@r>=9) { bonus bMatkRate,5; if (.@r>=11) { @@ -148554,7 +148921,6 @@ Body: Name: Nebula Robe of Wisdom Type: Armor Weight: 500 - MagicAttack: 125 Defense: 105 Slots: 1 Locations: @@ -148573,6 +148939,7 @@ Body: Script: | .@g = getenchantgrade(); .@r = getrefine(); + bonus bMatk,125; bonus bWis,1; bonus bMaxSPrate,2*(.@r/2); bonus bHealPower,(.@r/2); @@ -148602,6 +148969,48 @@ Body: } } } + - Id: 450176 + AegisName: Supplement_Part_Wing + Name: Powered Wing + Type: Armor + Buy: 20 + Weight: 100 + Defense: 12 + Locations: + Garment: true + ArmorLevel: 1 + EquipLevelMin: 100 + Refineable: true + Script: | + .@r = getrefine(); + .@a = getskilllv("NC_PILEBUNKER"); + bonus bMaxHPrate,3; + bonus2 bSubEle,Ele_Fire,10; + bonus2 bSubEle,Ele_Wind,10; + bonus2 bSkillAtk,"NC_ARMSCANNON",25*.@a; + bonus2 bSkillAtk,"NC_FLAMELAUNCHER",25*.@a; + bonus2 bSkillAtk,"NC_COLDSLOWER",25*.@a; + if (getskilllv("NC_ARMSCANNON") == 5) + bonus bDelayrate,-20; + if (getskilllv("NC_NEUTRALBARRIER") == 3) { + bonus2 bSubClass,Class_Boss,5; + bonus bHPGainValue,100; + bonus bSPGainValue,10; + } + if (getskilllv("NC_RESEARCHFE") == 5) + bonus bNoKnockback; + if (.@r>=7) { + bonus bMaxHPrate,5; + bonus2 bSubEle,Ele_Fire,20; + bonus2 bSubEle,Ele_Wind,20; + bonus2 bAddClass,Class_Boss,10; + } + if (.@r>=9) { + bonus bMaxHPrate,7; + bonus2 bSubEle,Ele_Fire,20; + bonus2 bSubEle,Ele_Wind,20; + bonus2 bAddClass,Class_Boss,10; + } - Id: 450177 AegisName: Gray_W_Suits Name: Gray Wolf Suit @@ -148625,7 +149034,6 @@ Body: Name: Gray Wolf Robe Type: Armor Weight: 1000 - MagicAttack: 130 Defense: 160 Slots: 1 Locations: @@ -148635,7 +149043,7 @@ Body: Refineable: true Script: | .@r = getrefine(); - bonus bMatk,15*(.@r/2); + bonus bMatk,130+(15*(.@r/2)); if (.@r>=7) { bonus bVariableCastrate,-15; } @@ -148644,7 +149052,6 @@ Body: Name: Celine's Dress Type: Armor Weight: 500 - MagicAttack: 50 Defense: 40 Slots: 1 Locations: @@ -148654,6 +149061,7 @@ Body: Refineable: true Script: | .@r = getrefine(); + bonus bMatk,50; if (.@r>=7) { bonus bVariableCastrate,-10; if (.@r>=9) { @@ -157055,6 +157463,28 @@ Body: } bonus bAtkRate,.@a; bonus bCritAtkRate,.@b; + - Id: 490279 + AegisName: aegis_490279 + Name: Raphin P. Necklace + Type: Armor + Weight: 100 + Slots: 1 + Locations: + Both_Accessory: true + ArmorLevel: 1 + EquipLevelMin: 100 + Script: | + .@a = readparam(bInt); + .@p = getitempos(); + bonus bLongAtkRate,5; + bonus2 bSkillAtk,"RA_AIMEDBOLT",3*getskilllv("RA_WUGSTRIKE"); + bonus bDelayrate,-.@a/12; + if (.@a >= 125) { + if (.@p == EQP_ACC_R) + bonus bFixedCast,-500; + if (.@p == EQP_ACC_L) + bonus bBaseAtk,80; + } - Id: 500000 AegisName: IDTest_weapon Name: IDTest weapon diff --git a/db/re/item_db_etc.yml b/db/re/item_db_etc.yml index 2e1e195df1..580e4cb9fc 100644 --- a/db/re/item_db_etc.yml +++ b/db/re/item_db_etc.yml @@ -46581,6 +46581,19 @@ Body: bonus bDelayrate,-5; bonus bPAtk,1; bonus bSmatk,1; + - Id: 300207 + AegisName: SLD_Shining_T_Bear_Card + Name: Sealed Shiny Teddy Bear Card + Type: Card + Weight: 10 + Locations: + Shoes: true + Script: | + .@r = getequiprefinerycnt(EQI_SHOES); + bonus bUseSPrate,15; + bonus2 bMagicAtkEle,Ele_Holy,2*.@r; + if (.@r>=15) + bonus2 bMagicAtkEle,Ele_Holy,7; - Id: 300209 AegisName: aegis_300209 Name: Sealed Nightmare Amon Ra Card diff --git a/db/re/item_db_usable.yml b/db/re/item_db_usable.yml index 903f86c5be..5b4be37b83 100644 --- a/db/re/item_db_usable.yml +++ b/db/re/item_db_usable.yml @@ -2276,7 +2276,7 @@ Body: specialeffect2 EF_MAGICALATTHIT; sc_start SC_INCCRI,300000,30; - Id: 9896 - AegisName: aegis_9896 + AegisName: DF_Power_Booster Name: "[Scroll] Power Booster" Type: Usable Buy: 2 @@ -2292,7 +2292,8 @@ Body: NoMail: true NoAuction: true Script: | - bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",1800,1,1; + specialeffect2 EF_POTION_BERSERK; + sc_start SC_LIMIT_POWER_BOOSTER,1800000,30; - Id: 9909 AegisName: aegis_9909 Name: "[Scroll] Ex Def Potion" @@ -8408,7 +8409,7 @@ Body: Weight: 80 Script: | specialeffect2 EF_STEAL; - bonus_script "{ bonus bHit,5; bonus bAspdRate,10; }",1200,0,0,EFST_ACARAJE; + sc_start SC_ACARAJE,1200000,0; - Id: 12376 AegisName: Mysterious_Can2 Name: Mysterious Can2 @@ -8453,7 +8454,7 @@ Body: BuyingStore: true Script: | specialeffect2 EF_STEAL; - bonus_script "{ bonus2 bAddClass,Class_All,3; bonus2 bMagicAddClass,Class_All,3; bonus bMatkRate,3; bonus2 bSubEle,Ele_Neutral,3; bonus2 bSubEle,Ele_Fire,3; bonus2 bSubEle,Ele_Water,3; bonus2 bSubEle,Ele_Wind,3; bonus2 bSubEle,Ele_Earth,3; bonus2 bSubEle,Ele_Dark,3; bonus2 bSubEle,Ele_Holy,3; bonus2 bSubEle,Ele_Ghost,3; }",1200; + sc_start SC_POPECOOKIE,1200000,3; - Id: 12380 AegisName: Desert_Wolf_Babe_Scroll Name: Job Change Flute @@ -8819,7 +8820,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_STEAL; - bonus_script "{ bonus2 bAddClass,Class_All,3; bonus bMatkRate,3; bonus2 bSubEle,Ele_All,3; }",120,0,0,EFST_POPECOOKIE; + sc_start SC_VITALIZE_POTION,120000,3; - Id: 12405 AegisName: Underripe_Yggseed Name: Underripe Yggseed @@ -8974,6 +8975,7 @@ Body: Flags: BuyingStore: true Script: | + specialeffect2 EF_BASH3D; sc_start SC_FULL_SWING_K,500000,50; - Id: 12419 AegisName: Mana_Plus @@ -8984,6 +8986,7 @@ Body: Flags: BuyingStore: true Script: | + specialeffect2 EF_BASH3D; sc_start SC_MANA_PLUS,500000,50; - Id: 12420 AegisName: Stamina_Up_M @@ -10001,6 +10004,9 @@ Body: Name: E Regeneration Potion Type: Usable Weight: 10 + Script: | + specialeffect2 EF_LIGHTSPHERE; + sc_start SC_INCHEALRATE,1800000,20; - Id: 12518 AegisName: E_B_Mdef_Potion Name: E B Mdef Potion @@ -10891,7 +10897,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_HASTEUP; - bonus_script "{ bonus bMatk,30; bonus bFixedCastrate,-70; bonus bNoCastCancel; bonus2 bSPLossRate,90,10000; }",60,0,0,EFST_MAGIC_CANDY; + sc_start SC_MAGICCANDY,60000,0; - Id: 12597 AegisName: Opor_Ayam Name: Opor Ayam @@ -11710,7 +11716,7 @@ Body: Weight: 10 Script: | specialeffect2 EF_MAGICALATTHIT; - bonus_script "{ bonus bMatk,24; }",600,0,0,EFST_SKF_MATK; + sc_start SC_SKF_MATK,600000,24; - Id: 12667 AegisName: Thai_Perfume_ATK Name: Thai Perfume ATK @@ -11719,7 +11725,7 @@ Body: Weight: 10 Script: | specialeffect2 EF_MAGICALATTHIT; - bonus_script "{ bonus bBaseAtk,24; }",600,0,0,EFST_SKF_ATK; + sc_start SC_SKF_ATK,600000,24; - Id: 12668 AegisName: Thai_Perfume_ASPD Name: Thai Perfume ASPD @@ -11728,7 +11734,7 @@ Body: Weight: 10 Script: | specialeffect2 EF_MAGICALATTHIT; - bonus_script "{ bonus bAspdRate,3; }",600,0,0,EFST_SKF_ASPD; + sc_start SC_SKF_ASPD,600000,3; - Id: 12669 AegisName: Thai_Perfume_CAST Name: Thai Perfume CAST @@ -11737,7 +11743,7 @@ Body: Weight: 10 Script: | specialeffect2 EF_MAGICALATTHIT; - bonus_script "{ bonus bVariableCastrate,-5; }",600,0,0,EFST_SKF_CAST; + sc_start SC_SKF_CAST,600000,-5; - Id: 12670 AegisName: Beast_Powder Name: Beast Powder @@ -12939,8 +12945,7 @@ Body: Weight: 150 Script: | specialeffect2 EF_POTION_BERSERK; - bonus_script "{ bonus2 bAddClass,Class_All,5; bonus bMatkRate,5; bonus bMaxHPrate,-3; bonus bMaxSPrate,-3; }",600,0,0,EFST_GM_BATTLE; - /* showscript */ + sc_start SC_COMBAT_PILL,600000,5; - Id: 12792 AegisName: P_Combat_Pill Name: P Combat Pill @@ -12949,7 +12954,7 @@ Body: Weight: 150 Script: | specialeffect2 EF_POTION_BERSERK; - bonus_script "{ bonus2 bAddClass,Class_All,10; bonus bMatkRate,10; bonus bMaxHPrate,-5; bonus bMaxSPrate,-5; }",600,0,0,EFST_GM_BATTLE; + sc_start SC_COMBAT_PILL2,600000,10; - Id: 12793 AegisName: Combat_Pill_Box10 Name: Combat Pill Box10 @@ -12981,7 +12986,7 @@ Body: - Id: 12796 AegisName: Red_Booster Name: Red Booster - Type: Delayconsume + Type: Usable Buy: 20 Weight: 10 Trade: @@ -12993,10 +12998,8 @@ Body: NoMail: true NoAuction: true Script: | - itemskill "AC_CONCENTRATION",max(getskilllv("AC_CONCENTRATION"),3); - /*bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bAspdRate,5; bonus bVariableCastrate,-5; bonus bMaxHPrate,-10; bonus bMaxSPrate,-10; bonus5 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10,BF_WEAPON|BF_MAGIC,0; }",600,1,1,EFST_2011RWC_SCROLL; TODO implement new staus*/ specialeffect2 EF_POTION_BERSERK; - showscript "Oh My GOODNESS!!! I FEEL AWESOMELY STRONG!!! WOWOW"; + sc_start SC_2011RWC_SCROLL,600000,0; - Id: 12797 AegisName: Wish_Maiden_Scroll Name: Wish Maiden Scroll @@ -13097,6 +13100,9 @@ Body: NoGuildStorage: true NoMail: true NoAuction: true + Script: | + specialeffect2 EF_WIND; + sc_start SC_MYSTICPOWDER,300000,0; - Id: 12806 AegisName: Scaraba_Scroll Name: Scaraba Scroll @@ -13685,7 +13691,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_BASH3D; - sc_start SC_2011RWC_SCROLL,1800000,10; + sc_start SC_ALMIGHTY,1800000,10; - Id: 12884 AegisName: Infinite_Concentration_Potion Name: Infinite Concentration Potion @@ -32727,7 +32733,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_HASTEUP; - bonus_script "{ bonus2 bHPLossRate,100,10000; bonus bBaseAtk,20; bonus bAspdRate,25; bonus bNoWalkDelay; }",60,0,0,EFST_STEAMPACK; + sc_start SC_SPARKCANDY,60000,0; - Id: 14587 AegisName: Repair_Scroll_ Name: Equipment Repair Spell Book @@ -32952,7 +32958,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_SPELLBREAKER; - bonus_script "{ bonus bUseSPrate,-10; bonus bMaxSPrate,10; }",1800,1,1,EFST_TARGET_ASPD; + sc_start SC_MENTAL_POTION,1800000,10; - Id: 14601 AegisName: Tyr's_Blessing Name: Tyr's Blessing @@ -32967,7 +32973,10 @@ Body: NoMail: true NoAuction: true Script: | - bonus_script "{ bonus bBaseAtk,20; bonus bMatk,20; bonus bHit,30; bonus bFlee,30; }",300,3,1; + sc_start SC_FLEEFOOD,300000,30; + sc_start SC_HITFOOD,300000,30; + sc_start SC_ATKPOTION,300000,20; + sc_start SC_MATKPOTION,300000,20; - Id: 14602 AegisName: TaogunkaS Name: Tao Gunka Scroll @@ -33420,8 +33429,8 @@ Body: Buy: 20 Weight: 10 Script: | - bonus_script "{ bonus bVit,10; bonus2 bSubEle,Ele_Fire,5; }",120; - /*EFST_CUP_OF_BOZA 120000*/ + sc_start SC_Cup_Of_Boza,120000,0; + /*aegis data 2 Minutes*/ - Id: 14675 AegisName: Shadow_Box_II Name: Shadow Box II @@ -33928,7 +33937,7 @@ Body: - Id: 14766 AegisName: Limited_Power_Booster Name: Limited Power Booster - Type: Cash + Type: Usable Buy: 10 Weight: 10 Trade: @@ -33941,7 +33950,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_POTION_BERSERK; - bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",1800,1,1,EFST_LIMIT_POWER_BOOSTER; + sc_start SC_LIMIT_POWER_BOOSTER,1800000,30; - Id: 14805 AegisName: July_Lucky_Scroll Name: Almighty Lucky Egg @@ -34247,7 +34256,7 @@ Body: - Id: 14869 AegisName: DF_Red_Booster Name: "[Scroll] Red Booster" - Type: Delayconsume + Type: Usable Buy: 2 Weight: 10 NoUse: @@ -34261,8 +34270,8 @@ Body: NoMail: true NoAuction: true Script: | - bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bAspdRate,5; bonus bVariableCastrate,-5; bonus bMaxHPrate,-10; bonus bMaxSPrate,-10; bonus5 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10,BF_WEAPON|BF_MAGIC,0; }",600,1,1,EFST_2011RWC_SCROLL; specialeffect2 EF_POTION_BERSERK; + sc_start SC_2011RWC_SCROLL,600000,0; showscript "Oh My GOODNESS!!! I FEEL AWESOMELY STRONG!!! WOWOW"; - Id: 14875 AegisName: DF_Med_Life_Potion @@ -34296,7 +34305,8 @@ Body: NoMail: true NoAuction: true Script: | - sc_start SC_2011RWC_SCROLL,1800000,10; + specialeffect2 EF_BASH3D; + sc_start SC_ULTIMATECOOK,1800000,10; - Id: 14887 AegisName: EF_UltimateCook Name: "[Not For Sale] Ultimate Cook" @@ -34313,7 +34323,8 @@ Body: NoMail: true NoAuction: true Script: | - sc_start SC_2011RWC_SCROLL,1800000,10; + specialeffect2 EF_BASH3D; + sc_start SC_ULTIMATECOOK,1800000,10; - Id: 16131 AegisName: Lady_Tanee_Doll_Box Name: Lady Tanee Doll Box @@ -43048,8 +43059,8 @@ Body: NoMail: true NoAuction: true Script: | + getitem 23899,10; getitem 22902,1; - bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",1800; - Id: 17568 AegisName: Event_Almighty_Box_100_ Name: Event Almighty Box(100) @@ -43065,8 +43076,8 @@ Body: NoMail: true NoAuction: true Script: | + getitem 23899,100; getitem 22902,11; - bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",1800; - Id: 17569 AegisName: Dun_Voucher_Box1 Name: Sky Fortress Ticket 1 Hour Box @@ -44510,21 +44521,25 @@ Body: Script: | percentheal 20,0; - Id: 22658 - AegisName: Cow_Steamed_Ribs + AegisName: BraisedShortRibs Name: Cow Steamed Ribs Type: Healing Buy: 20 Weight: 100 Script: | - bonus_script "{ bonus bVariableCastrate,5; bonus bUseSPrate,-3; }",180; + specialeffect2 EF_ENHANCE; + sc_start SC_BEEF_RIB_STEW,180000,0; + /*aegis data 3 Minutes*/ - Id: 22659 - AegisName: Pig_Steamed_Ribs + AegisName: BraisedSpareribs Name: Pig Steamed Ribs Type: Healing Buy: 20 Weight: 100 Script: | - bonus_script "{ bonus bAspdRate,5; bonus bUseSPrate,-2; }",180; + specialeffect2 EF_ENHANCE; + sc_start SC_PORK_RIB_STEW,180000,0; + /*aegis data 3 Minutes*/ - Id: 22660 AegisName: Sealed_Letter Name: Sealed Envelope @@ -45463,7 +45478,8 @@ Body: NoGuildStorage: true NoAuction: true Script: | - bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",3600; + specialeffect2 EF_BASH3D; + sc_start SC_ALMIGHTY,3600000,10; sc_start SC_SPEEDUP0,600000,25; - Id: 22820 AegisName: G_ASPD_Potion @@ -45503,7 +45519,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_POTION_BERSERK; - bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bAspdRate,5; bonus bVariableCastrate,-5; bonus bMaxHPrate,-10; bonus bMaxSPrate,-10; bonus5 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10,BF_WEAPON|BF_MAGIC,0; }",3600,1,1,EFST_2011RWC_SCROLL; + sc_start SC_2011RWC_SCROLL,3600000,0; sc_start SC_SPEEDUP0,600000,25; - Id: 22822 AegisName: Summer_Vacation_Costumes @@ -46348,7 +46364,7 @@ Body: Script: | getgroupitem(IG_Enchant_Stone_Box8); - Id: 23012 - AegisName: S_Small_Mana_Potion + AegisName: Comp_Small_Mana_Potion Name: "[Sale] Small Mana Potion" Type: Usable Weight: 10 @@ -46361,8 +46377,8 @@ Body: NoMail: true NoAuction: true Script: | - bonus_script "{ bonus2 bRegenPercentSP,5,5000; }",600,9; - /* fix me: unknown flag and specialeffect ; disabled when LK_BERSERK */ + specialeffect2 EF_HEAL3; + sc_start2 SC_S_MANAPOTION,600000,-5,5; - Id: 23016 AegisName: Pieces_Of_Grudge Name: Cursed Fragment @@ -46464,9 +46480,10 @@ Body: sc_end SC_ORCISH; sc_end SC_CHANGEUNDEAD; - Id: 23046 - AegisName: S_Mystic_Powder + AegisName: Comp_Mystic_Powder Name: "[Sale] Mystic Powder" Type: Usable + Weight: 10 Trade: NoDrop: true NoTrade: true @@ -46476,8 +46493,8 @@ Body: NoMail: true NoAuction: true Script: | - bonus_script "{ bonus bFlee,20; bonus bLuk,10; }",300,9; - /* fix me: unknown flag and specialeffect */ + specialeffect2 EF_WIND; + sc_start SC_MYSTICPOWDER,300000,0; - Id: 23047 AegisName: S_Blessing_Tyr Name: "[Sale] Blessing of Tyr" @@ -46497,7 +46514,7 @@ Body: sc_start SC_ATKPOTION,300000,20; sc_start SC_MATKPOTION,300000,20; - Id: 23048 - AegisName: S_Resilience_Potion + AegisName: Comp_Regenerate_Potion Name: "[Sale] Resilience Enhancement Potion" Type: Usable Weight: 10 @@ -46510,8 +46527,8 @@ Body: NoMail: true NoAuction: true Script: | - bonus_script "bonus bAddItemHealRate,20;",1800,9; - /* fix me: unknown flag and specialeffect */ + specialeffect2 EF_LIGHTSPHERE; + sc_start SC_INCHEALRATE,1800000,20; - Id: 23049 AegisName: Comp_Spark_Candy Name: "[Not For Sale] Sparkling Candy" @@ -46530,7 +46547,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_HASTEUP; - bonus_script "{ bonus2 bHPLossRate,100,10000; bonus bBaseAtk,20; bonus bAspdRate,25; bonus bNoWalkDelay; }",60,0,0,EFST_STEAMPACK; + sc_start SC_SPARKCANDY,60000,0; - Id: 23050 AegisName: Comp_Magic_Candy Name: "[Not For Sale] Magic Candy" @@ -46549,7 +46566,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_HASTEUP; - bonus_script "{ bonus bMatk,30; bonus bFixedCastrate,-70; bonus bNoCastCancel; bonus2 bSPLossRate,90,10000; }",60,0,0,EFST_MAGIC_CANDY; + sc_start SC_MAGICCANDY,60000,0; - Id: 23058 AegisName: Enchant_Stone_Box9 Name: Costume Enchant Stone Box 9 @@ -47346,7 +47363,7 @@ Body: Script: | getgroupitem(IG_Enchant_Stone_Box12); - Id: 23307 - AegisName: S_Shining_Def_Scroll + AegisName: Comp_M_DEFScroll Name: "[Sale] Shining Defense Scroll" Type: Usable Weight: 10 @@ -47359,8 +47376,8 @@ Body: NoMail: true NoAuction: true Script: | - bonus_script "{ bonus bDef,500; bonus bMdef,200; }",600; - /* fix me: unknown flag and specialeffect */ + specialeffect2 EF_HEAL3; + sc_start SC_M_DEFSCROLL,600000,0; - Id: 23308 AegisName: Booster_Amplifier Name: Booster Amplifier @@ -47535,7 +47552,7 @@ Body: NoAuction: true Script: | specialeffect2 EF_POTION_BERSERK; - bonus_script "{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bCritAtkRate,5; bonus bLongAtkRate,5; bonus bMatkRate,5; bonus bNoCastCancel; }",1800,1,1,EFST_INFINITY_DRINK; + sc_start SC_INFINITY_DRINK,1800000,0; - Id: 23505 AegisName: Yellow_Potion_B_20 Name: "[Event] Crate of 20 Yellow Potions" @@ -47781,7 +47798,8 @@ Body: Flags: BuyingStore: true Script: | - bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",1800; + specialeffect2 EF_BASH3D; + sc_start SC_ALMIGHTY,1800000,10; - Id: 23605 AegisName: Challenge_Drink Name: Challenger Drink @@ -47790,7 +47808,8 @@ Body: Flags: BuyingStore: true Script: | - bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",1800,1,1; + specialeffect2 EF_POTION_BERSERK; + sc_start SC_LIMIT_POWER_BOOSTER,1800000,30; - Id: 23606 AegisName: Power_Drink Name: Power Drink @@ -47799,8 +47818,18 @@ Body: Flags: BuyingStore: true Script: | - /* Confirm probability */ - bonus_script "{ bonus bMaxHP,-10; bonus bMaxSP,-10; bonus bBaseAtk,30; bonus bMatk,30; bonus bVariableCastrate,-5; bonus3 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10; }",300; + specialeffect2 EF_POTION_BERSERK; + sc_start SC_2011RWC_SCROLL,1800000,0; + - Id: 23607 + AegisName: Unlimited_Drink + Name: Unlimited Drink + Type: Usable + Weight: 10 + Flags: + BuyingStore: true + Script: | + specialeffect2 EF_POTION_BERSERK; + sc_start SC_INFINITY_DRINK,1800000,0; - Id: 23611 AegisName: Mimir_Spring_Water Name: Mimir's Spring Water @@ -47967,7 +47996,8 @@ Body: NoGuildStorage: true NoAuction: true Script: | - bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",1800; + specialeffect2 EF_BASH3D; + sc_start SC_ALMIGHTY,1800000,10; - Id: 23726 AegisName: E_Challenge_Drink Name: "[Event] Challenger Drink" @@ -47980,7 +48010,22 @@ Body: NoGuildStorage: true NoAuction: true Script: | - bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",1800,1,1; + specialeffect2 EF_POTION_BERSERK; + sc_start SC_LIMIT_POWER_BOOSTER,1800000,30; + - Id: 23727 + AegisName: E_Unlimited_Drink + Name: "[Event] Unlimited Drink" + Type: Usable + Weight: 10 + Trade: + NoDrop: true + NoTrade: true + NoCart: true + NoGuildStorage: true + NoAuction: true + Script: | + specialeffect2 EF_POTION_BERSERK; + sc_start SC_INFINITY_DRINK,1800000,0; - Id: 23728 AegisName: E_Power_Drink Name: "[Event] Power Drink" @@ -47993,8 +48038,8 @@ Body: NoGuildStorage: true NoAuction: true Script: | - /* Confirm probability */ - bonus_script "{ bonus bMaxHP,-10; bonus bMaxSP,-10; bonus bBaseAtk,30; bonus bMatk,30; bonus bVariableCastrate,-5; bonus3 bAutoSpell,\"AC_CONCENTRATION\",max(getskilllv(\"AC_CONCENTRATION\"),3),10; }",300; + specialeffect2 EF_POTION_BERSERK; + sc_start SC_2011RWC_SCROLL,1800000,0; - Id: 23732 AegisName: E_Mimir_Spring_W Name: "[Event] Mimir's Spring Water" @@ -48728,6 +48773,22 @@ Body: Weight: 10 Script: | laphine_synthesis(); + - Id: 23898 + AegisName: Comp_Power_Booster + Name: "[Not For Sale] Power Booster" + Type: Usable + Weight: 10 + Trade: + NoDrop: true + NoTrade: true + NoSell: true + NoCart: true + NoGuildStorage: true + NoMail: true + NoAuction: true + Script: | + specialeffect2 EF_POTION_BERSERK; + sc_start SC_LIMIT_POWER_BOOSTER,1800000,30; - Id: 23899 AegisName: Comp_Almighty Name: "[Not For Sale] Almighty" @@ -48742,8 +48803,8 @@ Body: NoMail: true NoAuction: true Script: | - bonus_script "{ bonus bAllStats,10; bonus bBaseAtk,30; bonus bMatk,30; }",3600; - sc_start SC_SPEEDUP0,600000,25; + specialeffect2 EF_BASH3D; + sc_start SC_ALMIGHTY,1800000,10; - Id: 23919 AegisName: K_Secret_Key Name: Kachua's Secret Key @@ -48827,7 +48888,7 @@ Body: Sitting: true Script: | specialeffect2 EF_HEAL3; - bonus_script "{ bonus bDef,500; bonus bMdef,200; }",3600,0,1,EFST_M_DEFSCROLL; + sc_start SC_M_DEFSCROLL,3600000,0; sc_start SC_SPEEDUP0,600000,25; - Id: 100007 AegisName: G_Limit_Power_Booster @@ -48838,7 +48899,7 @@ Body: Sitting: true Script: | specialeffect2 EF_POTION_BERSERK; - bonus_script "{ bonus bBaseAtk,30; bonus bMatk,30; bonus2 bAddClass,Class_All,1; bonus bMatkRate,1; bonus bHit,30; bonus bFlee,30; bonus bAspd,1; bonus bUseSPrate,-5; bonus bFixedCastrate,-30; }",3600,1,1,EFST_LIMIT_POWER_BOOSTER; + sc_start SC_LIMIT_POWER_BOOSTER,3600000,30; sc_start SC_SPEEDUP0,600000,25; - Id: 100008 AegisName: G_Infinity_Drink @@ -48849,7 +48910,7 @@ Body: Sitting: true Script: | specialeffect2 EF_POTION_BERSERK; - bonus_script "{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bCritAtkRate,5; bonus bLongAtkRate,5; bonus bMatkRate,5; bonus bNoCastCancel; }",3600,1,1,EFST_INFINITY_DRINK; + sc_start SC_INFINITY_DRINK,3600000,0; sc_start SC_SPEEDUP0,600000,25; - Id: 100009 AegisName: Joy_Of_Victory @@ -49867,7 +49928,10 @@ Body: NoUse: Sitting: true Script: | - bonus_script "{ bonus bBaseAtk,20; bonus bMatk,20; bonus bHit,30; bonus bFlee,30; }",3600,3,1; + sc_start SC_FLEEFOOD,3600000,30; + sc_start SC_HITFOOD,3600000,30; + sc_start SC_ATKPOTION,3600000,20; + sc_start SC_MATKPOTION,3600000,20; sc_start SC_SPEEDUP0,600000,25; - Id: 100317 AegisName: G_Mental_Potion @@ -49878,7 +49942,7 @@ Body: Sitting: true Script: | specialeffect2 EF_SPELLBREAKER; - bonus_script "{ bonus bUseSPrate,-10; bonus bMaxSPrate,10; }",3600,1,1,EFST_TARGET_ASPD; + sc_start SC_MENTAL_POTION,3600000,10; sc_start SC_SPEEDUP0,600000,25; - Id: 100321 AegisName: OS_Weapon_Refine_Cube @@ -49933,6 +49997,21 @@ Body: Weight: 10 Script: | laphine_synthesis(); + - Id: 100333 + AegisName: E_Infinity_Drink + Name: "[Not For Sale] Infinity Drink" + Type: Usable + Weight: 10 + Trade: + NoDrop: true + NoTrade: true + NoCart: true + NoGuildStorage: true + NoMail: true + NoAuction: true + Script: | + specialeffect2 EF_POTION_BERSERK; + sc_start SC_INFINITY_DRINK,1800000,0; - Id: 100338 AegisName: Booster_W_Up_1 Name: Booster Weapon Phase 1 Upgrade Package @@ -51284,12 +51363,13 @@ Body: Script: | item_reform(); - Id: 101097 - AegisName: aegis_101097 + AegisName: DF_Infinity_Drink Name: "[Scroll] Unlimited Drink" Type: Usable Weight: 10 Script: | - bonus_script "{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bCritAtkRate,5; bonus bLongAtkRate,5; bonus2 bMagicAddEle,Ele_All,5; bonus bNoCastCancel;}",1800; + specialeffect2 EF_POTION_BERSERK; + sc_start SC_INFINITY_DRINK,1800000,0; - Id: 101103 AegisName: Enchant_Stone_Box25 Name: Costume Enchant Stone Box 25 @@ -52126,6 +52206,15 @@ Body: BuyingStore: true Script: | laphine_synthesis(); + - Id: 101675 + AegisName: aegis_101675 + Name: Costume Enchant Stone Box 28 + Type: Usable + Weight: 10 + Flags: + Container: true + Script: | + getgroupitem(IG_Enchant_Stone_Box28); - Id: 200055 AegisName: C_Acid_B_50Box Name: Acid Bomb 50 Box diff --git a/db/re/item_group_db.yml b/db/re/item_group_db.yml index a67336cecc..21bf6c4b4e 100644 --- a/db/re/item_group_db.yml +++ b/db/re/item_group_db.yml @@ -31125,25 +31125,143 @@ Body: List: - Item: Blacksmith_Blessing Amount: 2 - - Group: Bs_Item_M_S_53 + - Group: BS_ITEM_M_S_53 SubGroups: - SubGroup: 0 List: - Item: Shadow_Refine_Hammer Amount: 2 - - Group: Bs_Item_M_S_54 + - Group: BS_ITEM_M_S_54 SubGroups: - SubGroup: 0 List: - Item: Mightysoul_Essence - - Group: Bs_Item_M_S_55 + - Group: BS_ITEM_M_S_55 SubGroups: - SubGroup: 0 List: - Item: M_Dimension_Essence - - Group: Bs_Item_M_S_56 + - Group: BS_ITEM_M_S_56 SubGroups: - SubGroup: 0 List: - Item: Enchant_Ticket Amount: 2 + - Group: ENCHANT_STONE_BOX28 + SubGroups: + - SubGroup: 1 + List: + - Item: M_PATKStone_Robe + Rate: 10 + - Item: R_PATKStone_Robe + Rate: 10 + - Item: POWStone_Robe_D + Rate: 10 + - Item: ConStone_Robe_D + Rate: 10 + - Item: Critical_Stone_Robe + Rate: 20 + - Item: SPdrainStone_Robe_D + Rate: 40 + - Item: SPdrainStone_Top + Rate: 80 + - Item: CastStone_Robe + Rate: 80 + - Item: ASPDStone_Top + Rate: 150 + - Item: ASPDStone_Robe_D + Rate: 80 + - Item: HPdrainStone_Robe_D + Rate: 80 + - Item: GreenFloor_Bottom + Rate: 160 + - Item: ExplodingEffect_Middle + Rate: 160 + - Item: StarEmperorStone_Garment + Rate: 80 + - Item: GunslingerStone_Robe + Rate: 80 + - Item: SoulReaperStone_Robe + Rate: 80 + - Item: StarStone_Top3 + Rate: 80 + - Item: StarStone_Middle3 + Rate: 80 + - Item: StarStone_Bottom3 + Rate: 80 + - Item: RebelStone_Top3 + Rate: 80 + - Item: RebelStone_Middle3 + Rate: 80 + - Item: RebelStone_Bottom3 + Rate: 80 + - Item: ReaperStone_Top3 + Rate: 80 + - Item: ReaperStone_Middle3 + Rate: 80 + - Item: ReaperStone_Bottom3 + Rate: 80 + - Item: aegis_100465 + Rate: 160 + - Item: aegis_100495 + Rate: 160 + - Item: Magic_Stone_Top + Rate: 240 + - Item: Magic_Stone_Middle + Rate: 240 + - Item: Magic_Stone_Bottom + Rate: 240 + - Item: StarGladiatorStone_Top + Rate: 150 + - Item: StarGladiatorStone_Middle + Rate: 150 + - Item: StarGladiatorStone_Bottom + Rate: 150 + - Item: GunslingerStone_Top + Rate: 150 + - Item: GunslingerStone_Middle + Rate: 150 + - Item: GunslingerStone_Bottom + Rate: 150 + - Item: SoulLinkerStone_Top + Rate: 150 + - Item: SoulLinkerStone_Middle + Rate: 150 + - Item: SoulLinkerStone_Bottom + Rate: 150 + - Item: Melee_Stone_Top + Rate: 240 + - Item: Melee_Stone_Middle + Rate: 240 + - Item: Melee_Stone_Bottom + Rate: 240 + - Item: Range_Stone_Top + Rate: 240 + - Item: Range_Stone + Rate: 240 + - Item: Range_Stone_Bottom + Rate: 240 + - Item: aegis_100496 + Rate: 360 + - Item: aegis_100497 + Rate: 360 + - Item: aegis_100498 + Rate: 360 + - Item: aegis_100499 + Rate: 360 + - Item: aegis_100500 + Rate: 360 + - Item: aegis_100501 + Rate: 360 + - Item: CastingStone_Top + Rate: 360 + - Item: CastingStone_Middle + Rate: 360 + - Item: CastingStone_Bottom + Rate: 360 + - Item: Critical_Stone + Rate: 360 + - Item: Critical_Stone_Top + Rate: 360 + - Item: Critical_Stone_Bottom + Rate: 360 diff --git a/db/re/status.yml b/db/re/status.yml index da841a803f..4032092bc3 100644 --- a/db/re/status.yml +++ b/db/re/status.yml @@ -2660,7 +2660,6 @@ Body: - Status: Inchealrate Icon: EFST_HEALPLUS Flags: - NoRemoveOnDead: true NoClearbuff: true NoDispell: true NoBanishingBuster: true @@ -6060,27 +6059,16 @@ Body: - Status: 2011rwc_Scroll Icon: EFST_2011RWC_SCROLL CalcFlags: - Str: true - Agi: true - Vit: true - Int: true - Dex: true - Luk: true Batk: true Matk: true + Aspd: true + MaxHp: true + MaxSp: true Flags: - NoRemoveOnDead: true NoClearbuff: true NoDispell: true NoBanishingBuster: true NoClearance: true - End: - Food_Str_Cash: true - Food_Agi_Cash: true - Food_Vit_Cash: true - Food_Int_Cash: true - Food_Dex_Cash: true - Food_Luk_Cash: true - Status: Jp_Event04 Icon: EFST_JP_EVENT04 Flags: @@ -8176,3 +8164,239 @@ Body: NoClearbuff: true End: Sub_Weaponproperty: true + - Status: Almighty + Icon: EFST_ALMIGHTY + CalcFlags: + Str: true + Agi: true + Vit: true + Int: true + Dex: true + Luk: true + Batk: true + Matk: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + End: + Food_Str_Cash: true + Food_Agi_Cash: true + Food_Vit_Cash: true + Food_Int_Cash: true + Food_Dex_Cash: true + Food_Luk_Cash: true + UltimateCook: true + - Status: UltimateCook + Icon: EFST_ULTIMATECOOK + CalcFlags: + Str: true + Agi: true + Vit: true + Int: true + Dex: true + Luk: true + Batk: true + Matk: true + Flags: + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + End: + Food_Str_Cash: true + Food_Agi_Cash: true + Food_Vit_Cash: true + Food_Int_Cash: true + Food_Dex_Cash: true + Food_Luk_Cash: true + Almighty: true + - Status: M_DefScroll + Icon: EFST_M_DEFSCROLL + CalcFlags: + Def: true + Mdef: true + Flags: + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Infinity_Drink + Icon: EFST_INFINITY_DRINK + CalcFlags: + All: true + Flags: + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Mental_Potion + Icon: EFST_TARGET_ASPD + CalcFlags: + All: true + Flags: + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Limit_Power_Booster + Icon: EFST_LIMIT_POWER_BOOSTER + CalcFlags: + All: true + Flags: + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Combat_Pill + Icon: EFST_GM_BATTLE + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Combat_Pill2 + Icon: EFST_GM_BATTLE2 + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: MysticPowder + Icon: EFST_MYSTICPOWDER + CalcFlags: + Luk: true + Flee: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: SparkCandy + Icon: EFST_STEAMPACK + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: MagicCandy + Icon: EFST_MAGIC_CANDY + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Acaraje + Icon: EFST_ACARAJE + CalcFlags: + Hit: true + Aspd: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: PopeCookie + Icon: EFST_POPECOOKIE + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Vitalize_Potion + Icon: EFST_VITALIZE_POTION + CalcFlags: + All: true + Flags: + NoClearbuff: true + NoBanishingBuster: true + NoClearance: true + - Status: Cup_Of_Boza + Icon: EFST_CUP_OF_BOZA + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: SKF_MATK + Icon: EFST_SKF_MATK + CalcFlags: + Matk: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: SKF_ATK + Icon: EFST_SKF_ATK + CalcFlags: + Batk: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: SKF_ASPD + Icon: EFST_SKF_ASPD + CalcFlags: + Aspd: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: SKF_CAST + Icon: EFST_SKF_CAST + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Beef_Rib_Stew + Icon: EFST_BEEF_RIB_STEW + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true + - Status: Pork_Rib_Stew + Icon: EFST_PORK_RIB_STEW + CalcFlags: + All: true + Flags: + NoRemoveOnDead: true + NoClearbuff: true + NoDispell: true + NoBanishingBuster: true + NoClearance: true diff --git a/npc/re/merchants/malangdo_costume.txt b/npc/re/merchants/malangdo_costume.txt index e77e230990..420c287646 100644 --- a/npc/re/merchants/malangdo_costume.txt +++ b/npc/re/merchants/malangdo_costume.txt @@ -1401,11 +1401,11 @@ mal_in01,20,107,3 script Lace La Zard#cos_ect 4_FROG,{ 25797, 29427, "Increases damage of Knuckle Arrow by 15%.", // SuraStone_Robe2 SuraStone_Robe2_ 25801, 29614, "Increases damage of Diamond Dust by 15%.", // SorcererStone_Robe2 SorcererStone_Robe2_ 25805, 29618, "Increases damage of Fatal Menace by 15%.", // ShadowchaserStone_Robe2 ShadowchaserStone_Robe2_ - 25842, 29654, "Increases damage of Eswhoo by 20%.", // SoulReaperStone_Robe SoulReaperStone_Robe_ - 25849, 29658, "Increases damage of Falling Star, Solar Burst and Full Moon Kick by 20%.", // StarEmperorStone_Garment StarEmperorStone_Garment_ + 25842, 29654, "Increases damage of Eswhoo by 20%.", // SoulReaperStone_Robe Soulreaper_Robe + 25849, 29658, "Increases damage of Falling Star, Solar Burst and Full Moon Kick by 20%.", // StarEmperorStone_Garment Staremperor_Robe 25853, 29662, "Increases damage of Swirling Petal by 25%.", // KagerouStone_Robe KagerouStone_Robe_ 25854, 29663, "Increases damage of Flaming Petals by 20%.", // OboroStone_Robe OboroStone_Robe_ - 25858, 29667, "Increases damage of Hammer of God and Round Trip by 20%.", // GunslingerStone_Robe GunslingerStone_Robe_ + 25858, 29667, "Increases damage of Hammer of God and Round Trip by 20%.", // GunslingerStone_Robe Rebellion_Robe 25862, 29671, "Increases damage of Picky Peck and Catnip Meteor by 20%.", // DoramStone_Robe DoramStone_Robe_ 1000011, 310003, "Increases damage of Aimed Bolt by 15%.", // RangerStone_II_Garment Ranger_Robe2 1000015, 310007, "Increases damage of Arms Cannon by 15%.", // MechanicStone_II_Garment Mechanic_Robe2 diff --git a/src/map/itemdb.hpp b/src/map/itemdb.hpp index 578db79e2e..3745ff65db 100644 --- a/src/map/itemdb.hpp +++ b/src/map/itemdb.hpp @@ -990,10 +990,11 @@ enum e_random_item_group { IG_4LV_10REFINE_WEAPON_9GU, IG_4LV_11REFINE_WEAPON_10G, IG_BS_ITEM_M_S_52, - IG_Bs_Item_M_S_53, - IG_Bs_Item_M_S_54, - IG_Bs_Item_M_S_55, - IG_Bs_Item_M_S_56, + IG_BS_ITEM_M_S_53, + IG_BS_ITEM_M_S_54, + IG_BS_ITEM_M_S_55, + IG_BS_ITEM_M_S_56, + IG_ENCHANT_STONE_BOX28, IG_MAX, }; diff --git a/src/map/pc.cpp b/src/map/pc.cpp index 79432ddb15..34b1c79fc4 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -10120,6 +10120,8 @@ int pc_itemheal(struct map_session_data *sd, t_itemid itemid, int hp, int sp) else if (itemid == ITEMID_COOKIE_BAT) bonus += sd->sc.data[SC_MTF_PUMPKIN]->val2; } + if (sd->sc.data[SC_VITALIZE_POTION]) + bonus += bonus * 10 / 100; tmp = hp * bonus / 100; // Overflow check if (bonus != 100 && tmp > hp) diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 09d5aa5986..8e7a902207 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -1841,9 +1841,30 @@ export_constant(SC_DEEP_POISONING_OPTION); export_constant(SC_POISON_SHIELD); export_constant(SC_POISON_SHIELD_OPTION); + export_constant(SC_SUB_WEAPONPROPERTY); export_constant(SC_M_LIFEPOTION); export_constant(SC_S_MANAPOTION); - export_constant(SC_SUB_WEAPONPROPERTY); + export_constant(SC_ALMIGHTY); + export_constant(SC_ULTIMATECOOK); + export_constant(SC_M_DEFSCROLL); + export_constant(SC_INFINITY_DRINK); + export_constant(SC_MENTAL_POTION); + export_constant(SC_LIMIT_POWER_BOOSTER); + export_constant(SC_COMBAT_PILL); + export_constant(SC_COMBAT_PILL2); + export_constant(SC_MYSTICPOWDER); + export_constant(SC_SPARKCANDY); + export_constant(SC_MAGICCANDY); + export_constant(SC_ACARAJE); + export_constant(SC_POPECOOKIE); + export_constant(SC_VITALIZE_POTION); + export_constant(SC_CUP_OF_BOZA); + export_constant(SC_SKF_MATK); + export_constant(SC_SKF_ATK); + export_constant(SC_SKF_ASPD); + export_constant(SC_SKF_CAST); + export_constant(SC_BEEF_RIB_STEW); + export_constant(SC_PORK_RIB_STEW); #ifdef RENEWAL export_constant(SC_EXTREMITYFIST2); @@ -5756,10 +5777,11 @@ export_constant(IG_4LV_10REFINE_WEAPON_9GU); export_constant(IG_4LV_11REFINE_WEAPON_10G); export_constant(IG_BS_ITEM_M_S_52); - export_constant(IG_Bs_Item_M_S_53); - export_constant(IG_Bs_Item_M_S_54); - export_constant(IG_Bs_Item_M_S_55); - export_constant(IG_Bs_Item_M_S_56); + export_constant(IG_BS_ITEM_M_S_53); + export_constant(IG_BS_ITEM_M_S_54); + export_constant(IG_BS_ITEM_M_S_55); + export_constant(IG_BS_ITEM_M_S_56); + export_constant(IG_ENCHANT_STONE_BOX28); /* unit stop walking */ export_constant(USW_NONE); diff --git a/src/map/skill.cpp b/src/map/skill.cpp index c63966e28d..3f28cb4301 100755 --- a/src/map/skill.cpp +++ b/src/map/skill.cpp @@ -693,6 +693,12 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk #ifdef RENEWAL if (tsc->data[SC_ASSUMPTIO]) hp_bonus += tsc->data[SC_ASSUMPTIO]->val1 * 2; +#endif + if (tsc->data[SC_VITALIZE_POTION]) +#ifdef RENEWAL + hp_bonus += 10; +#else + hp += hp * 10 / 100; #endif } } @@ -2382,6 +2388,12 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1 mob_class_change(dstmd,class_); } + if (sd && sc) { + struct status_change_entry *sce; + if ((sce = sc->data[SC_2011RWC_SCROLL]) && rnd() % 1000 <= 10) + skill_castend_nodamage_id(src, src, AC_CONCENTRATION, max(3, pc_checkskill(sd,AC_CONCENTRATION)), tick, 0); + } + return 0; } @@ -18535,6 +18547,8 @@ int skill_castfix_sc(struct block_list *bl, double time, uint8 flag) time += sc->data[SC_PARALYSIS]->val3; if (sc->data[SC_IZAYOI]) time -= time * 50 / 100; + if (sc->data[SC_2011RWC_SCROLL]) + time -= time * 5 / 100; } if (sc->data[SC_SUFFRAGIUM]) { if(!(flag&2)) @@ -18678,6 +18692,8 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16 fixed = 0; if (sc->data[SC_GLOOMYDAY]) fixed += skill_lv * 500; + if (sc->data[SC_2011RWC_SCROLL]) + VARCAST_REDUCTION(5); } if (sc && sc->data[SC_SECRAMENT] && skill_id == HW_MAGICPOWER && (flag&2)) // Sacrament lowers Mystical Amplification cast time fixcast_r = max(fixcast_r, sc->data[SC_SECRAMENT]->val2); diff --git a/src/map/status.cpp b/src/map/status.cpp index fc86ad5a2e..06558e9635 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -3038,6 +3038,14 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) { bonus -= sc->data[SC_EQC]->val3; if(sc->data[SC_PACKING_ENVELOPE3]) bonus += sc->data[SC_PACKING_ENVELOPE3]->val1; + if(sc->data[SC_2011RWC_SCROLL]) + bonus -= 10; + if(sc->data[SC_INFINITY_DRINK]) + bonus += 5; + if(sc->data[SC_COMBAT_PILL]) + bonus -= 3; + if(sc->data[SC_COMBAT_PILL2]) + bonus -= 5; } // Max rate reduce is -100% bonus = cap_value(bonus,-100,INT_MAX); @@ -3176,6 +3184,16 @@ static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) { //Decreasing if (sc->data[SC_MELODYOFSINK]) bonus -= sc->data[SC_MELODYOFSINK]->val3; + if (sc->data[SC_2011RWC_SCROLL]) + bonus -= 10; + if (sc->data[SC_INFINITY_DRINK]) + bonus += 5; + if (sc->data[SC_MENTAL_POTION]) + bonus += sc->data[SC_MENTAL_POTION]->val1; + if(sc->data[SC_COMBAT_PILL]) + bonus -= 3; + if(sc->data[SC_COMBAT_PILL2]) + bonus -= 5; } // Max rate reduce is -100% bonus = cap_value(bonus,-100,INT_MAX); @@ -4653,6 +4671,54 @@ int status_calc_pc_sub(struct map_session_data* sd, uint8 opt) sd->indexed_bonus.subele[ELE_POISON] += 100; sd->indexed_bonus.subele[ELE_HOLY] -= 30; } + if (sc->data[SC_INFINITY_DRINK]) { + sd->bonus.crit_atk_rate += 5; + sd->bonus.long_attack_atk_rate += 5; + sd->indexed_bonus.magic_atk_ele[ELE_ALL] += 5; + sd->special_state.no_castcancel = 1; + } + if(sc->data[SC_MENTAL_POTION]) + sd->dsprate -= sc->data[SC_MENTAL_POTION]->val1; + if (sc->data[SC_LIMIT_POWER_BOOSTER]) { + pc_bonus(sd, SP_ATK_RATE, 1); + pc_bonus(sd, SP_MATK_RATE, 1); + sd->dsprate -= 5; + sd->bonus.fixcastrate -= sc->data[SC_LIMIT_POWER_BOOSTER]->val1; + } + if (sc->data[SC_COMBAT_PILL]) { + pc_bonus(sd, SP_ATK_RATE, sc->data[SC_COMBAT_PILL]->val1); + pc_bonus(sd, SP_MATK_RATE, sc->data[SC_COMBAT_PILL]->val1); + } + if (sc->data[SC_COMBAT_PILL2]) { + pc_bonus(sd, SP_ATK_RATE, sc->data[SC_COMBAT_PILL2]->val1); + pc_bonus(sd, SP_MATK_RATE, sc->data[SC_COMBAT_PILL2]->val1); + } + if (sc->data[SC_SPARKCANDY]) + pc_bonus2(sd, SP_HP_LOSS_RATE, 100, 10000); + if (sc->data[SC_MAGICCANDY]) { + sd->bonus.fixcastrate -= 70; + sd->special_state.no_castcancel = 1; + pc_bonus2(sd, SP_SP_LOSS_RATE, 90, 10000); + } + if (sc->data[SC_POPECOOKIE]) { + pc_bonus(sd, SP_ATK_RATE, sc->data[SC_POPECOOKIE]->val1); + pc_bonus(sd, SP_MATK_RATE, sc->data[SC_POPECOOKIE]->val1); + sd->indexed_bonus.subele[ELE_ALL] -= sc->data[SC_POPECOOKIE]->val1; + } + if (sc->data[SC_VITALIZE_POTION]) { + pc_bonus(sd, SP_ATK_RATE, sc->data[SC_VITALIZE_POTION]->val1); + pc_bonus(sd, SP_MATK_RATE, sc->data[SC_VITALIZE_POTION]->val1); + } + if (sc->data[SC_CUP_OF_BOZA]) + sd->indexed_bonus.subele[ELE_FIRE] -= 5; + if (sc->data[SC_SKF_CAST]) + sd->bonus.varcastrate -= sc->data[SC_SKF_CAST]->val1; + if (sc->data[SC_BEEF_RIB_STEW]) { + sd->bonus.varcastrate -= 5; + sd->dsprate -= 3; + } + if (sc->data[SC_PORK_RIB_STEW]) + sd->dsprate -= 2; } status_cpy(&sd->battle_status, base_status); @@ -6196,8 +6262,6 @@ static unsigned short status_calc_str(struct block_list *bl, struct status_chang str += sc->data[SC_SAVAGE_STEAK]->val1; if(sc->data[SC_INSPIRATION]) str += sc->data[SC_INSPIRATION]->val3; - if(sc->data[SC_2011RWC_SCROLL]) - str += sc->data[SC_2011RWC_SCROLL]->val1; if(sc->data[SC_STOMACHACHE]) str -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) @@ -6218,6 +6282,10 @@ static unsigned short status_calc_str(struct block_list *bl, struct status_chang #endif if (sc->data[SC_UNIVERSESTANCE]) str += sc->data[SC_UNIVERSESTANCE]->val2; + if (sc->data[SC_ALMIGHTY]) + str += sc->data[SC_ALMIGHTY]->val1; + if (sc->data[SC_ULTIMATECOOK]) + str += sc->data[SC_ULTIMATECOOK]->val1; return (unsigned short)cap_value(str,0,USHRT_MAX); } @@ -6256,8 +6324,6 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang agi += sc->data[SC_INCREASEAGI]->val2; if(sc->data[SC_INCREASING]) agi += 4; // Added based on skill updates [Reddozen] - if(sc->data[SC_2011RWC_SCROLL]) - agi += sc->data[SC_2011RWC_SCROLL]->val1; if(sc->data[SC_DECREASEAGI]) agi -= sc->data[SC_DECREASEAGI]->val2; if(sc->data[SC_QUAGMIRE]) @@ -6300,6 +6366,10 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang #endif if (sc->data[SC_UNIVERSESTANCE]) agi += sc->data[SC_UNIVERSESTANCE]->val2; + if (sc->data[SC_ALMIGHTY]) + agi += sc->data[SC_ALMIGHTY]->val1; + if (sc->data[SC_ULTIMATECOOK]) + agi += sc->data[SC_ULTIMATECOOK]->val1; return (unsigned short)cap_value(agi,0,USHRT_MAX); } @@ -6344,8 +6414,6 @@ static unsigned short status_calc_vit(struct block_list *bl, struct status_chang vit += sc->data[SC_MINOR_BBQ]->val1; if(sc->data[SC_INSPIRATION]) vit += sc->data[SC_INSPIRATION]->val3; - if(sc->data[SC_2011RWC_SCROLL]) - vit += sc->data[SC_2011RWC_SCROLL]->val1; if(sc->data[SC_STOMACHACHE]) vit -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) @@ -6372,6 +6440,12 @@ static unsigned short status_calc_vit(struct block_list *bl, struct status_chang #endif if (sc->data[SC_UNIVERSESTANCE]) vit += sc->data[SC_UNIVERSESTANCE]->val2; + if (sc->data[SC_ALMIGHTY]) + vit += sc->data[SC_ALMIGHTY]->val1; + if (sc->data[SC_ULTIMATECOOK]) + vit += sc->data[SC_ULTIMATECOOK]->val1; + if (sc->data[SC_CUP_OF_BOZA]) + vit += 10; return (unsigned short)cap_value(vit,0,USHRT_MAX); } @@ -6416,8 +6490,6 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang int_ += sc->data[SC_NEN]->val1; if(sc->data[SC_MARIONETTE]) int_ -= ((sc->data[SC_MARIONETTE]->val4)>>16)&0xFF; - if(sc->data[SC_2011RWC_SCROLL]) - int_ += sc->data[SC_2011RWC_SCROLL]->val1; if(sc->data[SC_MARIONETTE2]) int_ += ((sc->data[SC_MARIONETTE2]->val4)>>16)&0xFF; if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH) @@ -6459,6 +6531,10 @@ static unsigned short status_calc_int(struct block_list *bl, struct status_chang if (sc->data[SC_NIBELUNGEN] && sc->data[SC_NIBELUNGEN]->val2 == RINGNBL_ALLSTAT) int_ += 15; #endif + if (sc->data[SC_ALMIGHTY]) + int_ += sc->data[SC_ALMIGHTY]->val1; + if (sc->data[SC_ULTIMATECOOK]) + int_ += sc->data[SC_ULTIMATECOOK]->val1; return (unsigned short)cap_value(int_,0,USHRT_MAX); } @@ -6507,8 +6583,6 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang dex += 4; // Added based on skill updates [Reddozen] if(sc->data[SC_MARIONETTE]) dex -= ((sc->data[SC_MARIONETTE]->val4)>>8)&0xFF; - if(sc->data[SC_2011RWC_SCROLL]) - dex += sc->data[SC_2011RWC_SCROLL]->val1; if(sc->data[SC_MARIONETTE2]) dex += ((sc->data[SC_MARIONETTE2]->val4)>>8)&0xFF; if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_HIGH) @@ -6543,6 +6617,10 @@ static unsigned short status_calc_dex(struct block_list *bl, struct status_chang #endif if (sc->data[SC_UNIVERSESTANCE]) dex += sc->data[SC_UNIVERSESTANCE]->val2; + if (sc->data[SC_ALMIGHTY]) + dex += sc->data[SC_ALMIGHTY]->val1; + if (sc->data[SC_ULTIMATECOOK]) + dex += sc->data[SC_ULTIMATECOOK]->val1; return (unsigned short)cap_value(dex,0,USHRT_MAX); } @@ -6591,8 +6669,6 @@ static unsigned short status_calc_luk(struct block_list *bl, struct status_chang luk -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) luk -= sc->data[SC_KYOUGAKU]->val2; - if(sc->data[SC_2011RWC_SCROLL]) - luk += sc->data[SC_2011RWC_SCROLL]->val1; if(sc->data[SC__STRIPACCESSORY] && bl->type != BL_PC) luk -= luk * sc->data[SC__STRIPACCESSORY]->val2 / 100; if(sc->data[SC_BANANA_BOMB]) @@ -6613,6 +6689,12 @@ static unsigned short status_calc_luk(struct block_list *bl, struct status_chang #endif if (sc->data[SC_UNIVERSESTANCE]) luk += sc->data[SC_UNIVERSESTANCE]->val2; + if (sc->data[SC_ALMIGHTY]) + luk += sc->data[SC_ALMIGHTY]->val1; + if (sc->data[SC_ULTIMATECOOK]) + luk += sc->data[SC_ULTIMATECOOK]->val1; + if (sc->data[SC_MYSTICPOWDER]) + luk += 10; return (unsigned short)cap_value(luk,0,USHRT_MAX); } @@ -6798,6 +6880,16 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan #endif if (sc->data[SC_SUNSTANCE]) batk += batk * sc->data[SC_SUNSTANCE]->val2 / 100; + if (sc->data[SC_ALMIGHTY]) + batk += 30; + if (sc->data[SC_ULTIMATECOOK]) + batk += 30; + if(sc->data[SC_LIMIT_POWER_BOOSTER]) + batk += sc->data[SC_LIMIT_POWER_BOOSTER]->val1; + if(sc->data[SC_SPARKCANDY]) + batk += 20; + if(sc->data[SC_SKF_ATK]) + batk += sc->data[SC_SKF_ATK]->val1; return (unsigned short)cap_value(batk,0,USHRT_MAX); } @@ -6973,6 +7065,16 @@ static unsigned short status_calc_ematk(struct block_list *bl, struct status_cha matk += sc->data[SC_INSPIRATION]->val2; if (sc->data[SC_PACKING_ENVELOPE2]) matk += sc->data[SC_PACKING_ENVELOPE2]->val1; + if(sc->data[SC_ALMIGHTY]) + matk += 30; + if(sc->data[SC_ULTIMATECOOK]) + matk += 30; + if (sc->data[SC_LIMIT_POWER_BOOSTER]) + matk += sc->data[SC_LIMIT_POWER_BOOSTER]->val1; + if (sc->data[SC_MAGICCANDY]) + matk += 30; + if (sc->data[SC_SKF_MATK]) + matk += sc->data[SC_SKF_MATK]->val1; return (unsigned short)cap_value(matk,0,USHRT_MAX); } @@ -7013,6 +7115,16 @@ static unsigned short status_calc_matk(struct block_list *bl, struct status_chan matk += sc->data[SC_MTF_MATK2]->val1; if (sc->data[SC_2011RWC_SCROLL]) matk += 30; + if (sc->data[SC_ALMIGHTY]) + matk += 30; + if (sc->data[SC_ULTIMATECOOK]) + matk += 30; + if (sc->data[SC_LIMIT_POWER_BOOSTER]) + matk += sc->data[SC_LIMIT_POWER_BOOSTER]->val1; + if (sc->data[SC_MAGICCANDY]) + matk += 30; + if (sc->data[SC_SKF_MATK]) + matk += sc->data[SC_SKF_MATK]->val1; #endif if (sc->data[SC_ZANGETSU]) matk += sc->data[SC_ZANGETSU]->val3; @@ -7036,8 +7148,6 @@ static unsigned short status_calc_matk(struct block_list *bl, struct status_chan matk += sc->data[SC_MOONLITSERENADE]->val3/100; if (sc->data[SC_MTF_MATK]) matk += matk * sc->data[SC_MTF_MATK]->val1 / 100; - if(sc->data[SC_2011RWC_SCROLL]) - matk += 30; if (sc->data[SC_SHRIMP]) matk += matk * sc->data[SC_SHRIMP]->val2 / 100; if (sc->data[SC_VOLCANO]) @@ -7170,6 +7280,10 @@ static signed short status_calc_hit(struct block_list *bl, struct status_change hit += sc->data[SC_PACKING_ENVELOPE10]->val1; if (sc->data[SC_ABYSS_SLAYER]) hit += sc->data[SC_ABYSS_SLAYER]->val3; + if (sc->data[SC_LIMIT_POWER_BOOSTER]) + hit += sc->data[SC_LIMIT_POWER_BOOSTER]->val1; + if (sc->data[SC_ACARAJE]) + hit += 5; return (short)cap_value(hit,1,SHRT_MAX); } @@ -7284,6 +7398,10 @@ static signed short status_calc_flee(struct block_list *bl, struct status_change flee += sc->data[SC_GROOMING]->val2; if (sc->data[SC_PACKING_ENVELOPE5]) flee += sc->data[SC_PACKING_ENVELOPE5]->val1; + if (sc->data[SC_LIMIT_POWER_BOOSTER]) + flee += sc->data[SC_LIMIT_POWER_BOOSTER]->val1; + if (sc->data[SC_MYSTICPOWDER]) + flee += 20; return (short)cap_value(flee,1,SHRT_MAX); } @@ -7420,6 +7538,8 @@ static defType status_calc_def(struct block_list *bl, struct status_change *sc, def += sc->data[SC_GUARD_STANCE]->val2; if (sc->data[SC_ATTACK_STANCE]) def -= sc->data[SC_ATTACK_STANCE]->val2; + if (sc->data[SC_M_DEFSCROLL]) + def += 500; return (defType)cap_value(def,DEFTYPE_MIN,DEFTYPE_MAX); } @@ -7552,6 +7672,8 @@ static defType status_calc_mdef(struct block_list *bl, struct status_change *sc, mdef += sc->data[SC_PACKING_ENVELOPE8]->val1; if (sc->data[SC_CLIMAX_CRYIMP]) mdef += 100; + if (sc->data[SC_M_DEFSCROLL]) + mdef += 200; return (defType)cap_value(mdef,DEFTYPE_MIN,DEFTYPE_MAX); } @@ -7934,6 +8056,16 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, b bonus += 20; if (sc->data[SC_STARSTANCE]) bonus += sc->data[SC_STARSTANCE]->val2; + if( sc->data[SC_2011RWC_SCROLL] ) + bonus += 5; + if( sc->data[SC_SPARKCANDY] ) + bonus += 25; + if( sc->data[SC_ACARAJE] ) + bonus += 10; + if( sc->data[SC_SKF_ASPD] ) + bonus += sc->data[SC_SKF_ASPD]->val1; + if( sc->data[SC_PORK_RIB_STEW] ) + bonus += 5; struct map_session_data* sd = BL_CAST(BL_PC, bl); uint8 skill_lv; @@ -7980,6 +8112,8 @@ static short status_calc_fix_aspd(struct block_list *bl, struct status_change *s aspd -= sc->data[SC_PACKING_ENVELOPE6]->val1 * 10; if (sc->data[SC_SINCERE_FAITH]) aspd -= 10 * sc->data[SC_SINCERE_FAITH]->val2; + if( sc->data[SC_LIMIT_POWER_BOOSTER] ) + aspd -= 10; return cap_value(aspd, 0, 2000); // Will be recap for proper bl anyway } @@ -8131,6 +8265,16 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change * aspd_rate -= 100; if (sc->data[SC_STARSTANCE]) aspd_rate -= 10 * sc->data[SC_STARSTANCE]->val2; + if( sc->data[SC_2011RWC_SCROLL] ) + aspd_rate -= 50; + if( sc->data[SC_SPARKCANDY] ) + aspd_rate -= 250; + if( sc->data[SC_ACARAJE] ) + aspd_rate -= 100; + if( sc->data[SC_SKF_ASPD] ) + aspd_rate -= sc->data[SC_SKF_ASPD]->val1 * 10; + if( sc->data[SC_PORK_RIB_STEW] ) + aspd_rate -= 50; return (short)cap_value(aspd_rate,0,SHRT_MAX); } @@ -8157,7 +8301,7 @@ static unsigned short status_calc_dmotion(struct block_list *bl, struct status_c return 0; } - if (sc && sc->count > 0 && (sc->data[SC_ENDURE] || sc->data[SC_RUN] || sc->data[SC_WUGDASH])) + if (sc && sc->count > 0 && (sc->data[SC_ENDURE] || sc->data[SC_RUN] || sc->data[SC_WUGDASH] || sc->data[SC_SPARKCANDY])) return 0; return (unsigned short)cap_value(dmotion,0,USHRT_MAX); @@ -13691,7 +13835,7 @@ TIMER_FUNC(status_change_timer){ if( --(sce->val4) >= 0 ) { // val1 < 0 = per max% | val1 > 0 = exact amount int hp = 0; - if( status->hp < status->max_hp ) + if( status->hp < status->max_hp && !sc->data[SC_BERSERK] ) hp = (sce->val1 < 0) ? (int)(status->max_hp * -1 * sce->val1 / 100.) : sce->val1; status_heal(bl, hp, 0, 2); sc_timer_next((sce->val2 * 1000) + tick); @@ -13703,7 +13847,7 @@ TIMER_FUNC(status_change_timer){ if( --(sce->val4) >= 0 ) { // val1 < 0 = per max% | val1 > 0 = exact amount int sp = 0; - if( status->sp < status->max_sp ) + if( status->sp < status->max_sp && !sc->data[SC_BERSERK] ) sp = (sce->val1 < 0) ? (int)(status->max_sp * -1 * sce->val1 / 100.) : sce->val1; status_heal(bl, 0, sp, 2); sc_timer_next((sce->val2 * 1000) + tick); diff --git a/src/map/status.hpp b/src/map/status.hpp index f103cd0188..fe1f6294e5 100644 --- a/src/map/status.hpp +++ b/src/map/status.hpp @@ -1226,11 +1226,33 @@ enum sc_type : int16 { SC_DEEP_POISONING_OPTION, SC_POISON_SHIELD, SC_POISON_SHIELD_OPTION, - SC_M_LIFEPOTION, - SC_S_MANAPOTION, SC_SUB_WEAPONPROPERTY, + SC_M_LIFEPOTION, + SC_S_MANAPOTION, + SC_ALMIGHTY, + SC_ULTIMATECOOK, + SC_M_DEFSCROLL, + SC_INFINITY_DRINK, + SC_MENTAL_POTION, + SC_LIMIT_POWER_BOOSTER, + SC_COMBAT_PILL, + SC_COMBAT_PILL2, + SC_MYSTICPOWDER, + SC_SPARKCANDY, + SC_MAGICCANDY, + SC_ACARAJE, + SC_POPECOOKIE, + SC_VITALIZE_POTION, + SC_CUP_OF_BOZA, + SC_SKF_MATK, + SC_SKF_ATK, + SC_SKF_ASPD, + SC_SKF_CAST, + SC_BEEF_RIB_STEW, + SC_PORK_RIB_STEW, + #ifdef RENEWAL SC_EXTREMITYFIST2, //! NOTE: This SC should be right before SC_MAX, so it doesn't disturb if RENEWAL is disabled #endif